Как заполнить WPF DataGrid сложным JSON? - PullRequest
0 голосов
/ 28 июня 2019

У меня есть JSON со сложной структурой, и я хочу преобразовать его в DataTable для заполнения DataGrid.Код ниже работает только с плоской структурой JSON.Мне нужно общее решение для преобразования любого сложного JSON в DataTable для приложения WPF.,

void FillGridWithData()
{

    //[
    //{ "name":"Ford", "models":[ "Fiesta", "Focus", "Mustang" ]
    //},
    //{ "name":"BMW", "models":[ "320", "X3", "X5" ]
    //},
    //{ "name":"Fiat", "models":[ "500", "Panda" ] }]
    string json = "  [\r\n    { \"name\":\"Ford\", \"models\":[ \"Fiesta\", \"Focus\", \"Mustang\" ] },\r\n    { \"name\":\"BMW\", \"models\":[ \"320\", \"X3\", \"X5\" ] },\r\n    { \"name\":\"Fiat\", \"models\":[ \"500\", \"Panda\" ] }\r\n  ]"

    JArray jarray = JArray.Parse(json);
    DataTable table = jarray.ToObject<DataTable>();

    this.datagrid.DataContext = table.DefaultView;

}

Это вывод: Модели

Если это возможно, пожалуйста, ответьте мнекак это сделать, не создавая классы для каждого json, потому что у меня много разных структур json.

Это пример некоторых json, которые мне нужно показать в DataGrid:

{
  "Example": [
    {
      "Num": 1,
      "Category": "Poslano",
      "Date": "2019-01-07T00:00:00",
      "Object": {
        "Value1": "Ante Blažević",
        "Value2": "54984",
        "Value3: "4968",
        "Value4": "48968",
        "Value5": "Something"
      },
      "ValueString": "dgfhdfg",
      "Value45": "dfghdf"
    },
    {
      "Num": 2,
      "Category": "Poslano",
      "Date": "2019-01-07T00:00:00",
      "Object": {
        "Value1": "Nikica Rašlić",
        "Value2": "5498",
        "Value3": "8749",
        "Value4": "54696",
        "Value5": "Something"
      },
      "ValueString": "Bla",
      "Value45": "dfghdf"
    }
    ]
}
...