Как показать json объектов (с различными полями данных) в виде данных? - PullRequest
0 голосов
/ 31 марта 2020

Я хочу показать json объектов в таблице данных. (C#. MVC) Из-за того, что объект json имеет в основном разные поля в соответствии с машинными данными, которым они принадлежат. Для каждого json объекта я не хочу писать отдельный класс. Как я могу обрабатывать эти json объекты динамически и показывать данные в одном классе? Заранее спасибо.

1 Ответ

1 голос
/ 01 апреля 2020

С 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
  }
]

Надеюсь, это поможет.

...