venkatesh (chennai) Ответов: 1

Как десериализовать данные JSON в объект, относящийся..?


var mockData = [{
               item: {
                   id: "id1",
                   label: "Lorem ipsum dolor 1",
                   checked: false
               },
               children: [{
                   item: {
                       id: "id11",
                       label: "Lorem ipsum dolor 11",
                       checked: false
                   }
               }, {
                   item: {
                       id: 'id12',
                       label: 'Lorem ipsum dolor 12',
                       checked: false
                   }
               }, {
                   item: {
                       id: 'id13',
                       label: 'Lorem ipsum dolor 13',
                       checked: false
                   }
               }]
           }
           ]


Что я уже пробовал:

как десериализовать данные JSON в объект, относящийся... как список объектов элементов и дочерних элементов

дети из общественного класса
{
public int id { get; set; }
public string label { get; set; }
public Boolean Checked { get; set; }
}
предмет открытого класса
{
public int id { get; set; }
public string label { get; set; }
public Boolean Checked { get; set; }
}

1 Ответов

Рейтинг:
1

Afzaal Ahmad Zeeshan

Ваш JSON не может быть сопоставлен с этим объектом, прежде всего потому, что объект "должен" иметь свойство, идентифицированное как "элемент", и это свойство должно быть другим объектом, который содержит эти дополнительные три свойства. JSON может быть полезен, но в среде JavaScript, где типы не являются сильными (строго типизированными). Пример может быть таким,

public class ItemContainer {
   public item item { get; set; }
}

Затем создайте коллекцию для них,
public class JsonContent {
   public JsonContent item { get; set; }
   public List<jsoncontent> children { get; set; }
}
</jsoncontent>

Это позволит вам разобрать JSON на JsonContent объект. Например, вот так,
// using Newtonsoft.Json;
var obj = JsonConvert.DeserializeObject<list><jsoncontent>>(data);

// I used the List<jsoncontent> because your JSON starts with [] which is an array.
</jsoncontent></jsoncontent></list>

Я написал статью, посвященную самым основам формата обмена данными JSON и тому, как можно выполнять действия сериализации и десериализации в C#. Прочтите его здесь, От нуля до героя в JSON с C#[^].

Во-вторых, я также опубликовал ответ на очень интересный вопрос в той же теме, Как десериализовать случайные данные JSON в объект на языке C#[^]. Я опубликовал советы по выполнению десериализации JSON, когда вы не знаете, что делать. Прочтите там.


Sergey Alexandrovich Kryukov

5ед.
—СА

Afzaal Ahmad Zeeshan

Спасибо, Сергей.

BillWoodruff

+5

Afzaal Ahmad Zeeshan

Спасибо, Билл.