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

标签 c# json serialization

我有以下从第三方库获取的动态对象:

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 而不是 dynamic

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

当您只想反序列化requirements而不对其进行任何其他操作时,则无需使用它dynamically。

关于c# - 如何将动态对象转换为 JSON 字符串 c#?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38825113/

相关文章:

java - 是否可以编写一个标记接口(interface)

c# - EF 扩展每个案例的查询

json - 工兵/ slim : how to fetch a local json file to retrieve data

javascript - 如何使用 lodash 或不使用 lodash 按特定值从嵌套 JSON 创建键数组?

java - 从检索到的 firebase json 对象中提取单个数据值

wcf - 我们如何在 WCF 中透明地序列化 Dataset ExtendedProperties?

serialization - 将 Delta<T> 序列化为 JSON

c# - 如何从带有 MethodCallExpression/lambda 的树中的 ConditionalExpression.IfThen 返回?

c# - 如何在 .net 中的另一台计算机上运行进程

C# 显示错误 'Delegate ' System.Func<...>' does not take 1 arguments