如何将动态对象转换为JSON字符串c#?

use*_*165 7 c# serialization json

我从第三方库获得以下动态对象:

IOrderStore os = ss.GetService<IOrderStore>();
IOrderInfo search = os.Orders.Where(t => t.Number == "test").FirstOrDefault();
IOrder orderFound = os.OpenOrder(search, true);

dynamic order = (dynamic)orderFound;
dynamic requirements = order.Title.Commitments[0].Requirements;
Run Code Online (Sandbox Code Playgroud)

我需要将其解析为JSON字符串.

我试过这个(使用JSON.net):

string jsonString = JsonConvert.SerializeObject(requirements);
return jsonString;
Run Code Online (Sandbox Code Playgroud)

但是我得到了一个看似已损坏的JSON字符串,如下所示:

[{ "$ ID": "1"},{ "$ ID": "2"},{ "$ ID": "3"},{ "$ ID": "4"},{ "$ ID" : "5"},{ "$ ID": "6"},{ "$ ID": "7"},{ "$ ID": "8"},{ "$ ID": "9"}, { "$ ID": "10"},{ "$ ID": "11"},{ "$ ID": "12"},{ "$ ID": "13"},{ "$ ID": "14"},{ "$标识": "15"}]

该对象包含多个属性,而不仅仅是'id'.

有什么建议?

Goo*_*ide 11

您是否尝试过使用var代替dynamic

// Use "var" in the declaration below.
var requirements = order.Title.Commitments[0].Requirements;
string jsonString = JsonConvert.SerializeObject(requirements);
Run Code Online (Sandbox Code Playgroud)

当你只想反序列化requirements而不用它做任何其他事情时,就没有必要使用它dynamic


小智 6

尝试使用 Convert.ToString() 作为以下代码将“动态”对象转换为“字符串” -

dynamic order = (dynamic)orderFound;
dynamic requirements = order.Title.Commitments[0].Requirements;
string validString = Convert.ToString(requirements);
Run Code Online (Sandbox Code Playgroud)