【发布时间】:2020-07-11 22:48:24
【问题描述】:
我想在数据表中显示 json 对象。 (C#.MVC)事实上,json对象根据它们所属的机器数据具有大部分不同的字段。对于每个 json 对象,我不想编写单独的类。如何动态处理这个 json 对象并在单个类中显示数据表? 提前致谢。
【问题讨论】:
标签: c# json model-view-controller dynamic datatable
我想在数据表中显示 json 对象。 (C#.MVC)事实上,json对象根据它们所属的机器数据具有大部分不同的字段。对于每个 json 对象,我不想编写单独的类。如何动态处理这个 json 对象并在单个类中显示数据表? 提前致谢。
【问题讨论】:
标签: c# json model-view-controller dynamic datatable
使用Cinchoo ETL这个开源库,你可以这样做
string json = @"{
""header"": ""myheader"",
""transaction"": {
""date"": ""2019-09-24"",
""items"": [
{
""number"": ""123"",
""unit"": ""EA"",
""qty"": 6
},
{
""number"": ""456"",
""unit"": ""CS"",
""qty"": 4
}
]
}
}";
using (var r = ChoJSONReader.LoadText(json))
{
var dt = r.Select(f => f.Flatten()).AsDataTable();
Console.WriteLine(dt.DumpAsJson());
}
输出:
[
{
"header": "myheader",
"transaction_date": "2019-09-24",
"transaction_items_0_number": "123",
"transaction_items_0_unit": "EA",
"transaction_items_0_qty": 6,
"transaction_items_1_number": "456",
"transaction_items_1_unit": "CS",
"transaction_items_1_qty": 4
}
]
希望对你有帮助。
【讨论】:
var dt = r.Select(f => f.Flatten()).AsDataTable();返回数据表。