【问题标题】:How to show json objects(with diffrent data fileds) in a datatable?如何在数据表中显示 json 对象(具有不同的数据字段)?
【发布时间】:2020-07-11 22:48:24
【问题描述】:

我想在数据表中显示 json 对象。 (C#.MVC)事实上,json对象根据它们所属的机器数据具有大部分不同的字段。对于每个 json 对象,我不想编写单独的类。如何动态处理这个 json 对象并在单个类中显示数据表? 提前致谢。

【问题讨论】:

    标签: c# json model-view-controller dynamic datatable


    【解决方案1】:

    使用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();返回数据表。
    猜你喜欢
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 2021-01-11
    • 2021-05-14
    • 1970-01-01
    • 2020-05-09
    • 2015-09-09
    • 1970-01-01
    相关资源
    最近更新 更多