WPF — Json.NET: Как десериализовать несколько объектов из Json и поместить их в список?

#c# #json #wpf #.net-core

Вопрос:

Файл: data.json:

 [
  {
    "Items": [
      {
        "Name": "Item 0"
      },
      {
        "Name": "Item 1"
      },
      {
        "Name": "Item 2"
      }
    ] 
  }
]
 

Класс:

 public partial class ItemHandler : Page
{
    string itemsJson;
    public ItemHandler()
    {
        InitializeComponent();

        itemsJson = JsonHandler.ReadItems();

        foreach (var item in collection)
        {
            // ???
        }
    }
}

public class Item
{
    public string Name { get; set; }
}
 

Мне нужно получить каждый элемент из списка строк по имени, но я не знаю, как десериализовать один за другим, я запутался в Json.Учебные пособия по СЕТЕВОЙ десериализации.

Комментарии:

1. При работе с visual studio вы можете использовать специальную вставку. Скопируйте json в буфер обмена, затем используйте Edit/Paste Special/Paste JSON as Classes

Ответ №1:

попробуйте это

 void Main()
{
    var json ="[{"Items":[{"Name":"Item 0"},{"Name":"Item 1"},{"Name":"Item 2"}]}]";

    var jD=JsonSerializer.Deserialize<Root[]>(json);

    foreach (var items in jD)
    {
        foreach (var item in items.Items)
        {
            Console.WriteLine(item.Name);
        }
    }

}

public class Item
{
    public string Name { get; set; }
}

public class Root
{
    public List<Item> Items { get; set; }
}