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

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

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;

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

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

string jsonString = JsonConvert.SerializeObject(requirements);
return jsonString;

但是我得到了一个看似已损坏的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″},{“$id”:”15″}]

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

有什么建议?

最佳答案
你尝试过使用var而不是动态吗?

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

如果您只想反序列化需求而不对其执行任何其他操作,则无需动态使用它.

转载注明原文:如何将动态对象转换为JSON字符串c#? - 代码日志