Как десериализовать json в объекты в C#? [дубликат]

106
01 декабря 2020, 00:30
На этот вопрос уже даны ответы здесь:
Как распарсить объект такого вида на c#? (1 ответ)
Как распарсить json в ассоциативный массив / C# (3 ответа)
Закрыт 1 год назад.

Имеется строка в вида:

{"test":true,"list":[{"a":"aa","b":"bb"},{"a":"aa1","b":"bb1"},{"a":"aa2","b":"bb2"},{"a":"aa3","b":"bb3"}]}

Как мне ее Deserialize в объекты? Известно, что test - string значение, list - коллекция объектов. Данный обобьет доступен для проекта. Но не могу получить сначала коллекцию объектов, потом string значение.

Answer 1

Используйте newtonsoft json

string json = @"{
  'Email': 'james@example.com',
  'Active': true,
  'CreatedDate': '2013-01-20T00:00:00Z',
  'Roles': [
    'User',
    'Admin'
  ]
}";
Account account = JsonConvert.DeserializeObject<Account>(json);
Console.WriteLine(account.Email);
// james@example.com
Answer 2

Но не могу получить сначала коллекцию объектов, потом string значение.

Вот классы для десериализации:

public partial class Data
{
    [JsonProperty("test")]
    public bool Test { get; set; }
    [JsonProperty("list")]
    public List[] List { get; set; }
}
public partial class List
{
    [JsonProperty("a")]
    public string A { get; set; }
    [JsonProperty("b")]
    public string B { get; set; }
}

А вот сама десериализация:

var source = "{\"test\":true,\"list\":[{\"a\":\"aa\",\"b\":\"bb\"},{\"a\":\"aa1\",\"b\":\"bb1\"},{\"a\":\"aa2\",\"b\":\"bb" +
"2\"},{\"a\":\"aa3\",\"b\":\"bb3\"}]}";
var result = JsonConvert.DeserializeObject<Data>(source);

Вот результат:

READ ALSO
Как получить выбраный элемент в ComboBox?

Как получить выбраный элемент в ComboBox?

Как в ViewModel получить то, что выбрал юзер в ComboBox? Я не мог найти как это сделать, если я заполняю список внутри XAML, а не из кода

100
PHP array_walk и array_filter

PHP array_walk и array_filter

Выдает вот это: Strict Standards: Only variables should be passed by reference on line 13 Не могу понять где константаpostfix не добавляется

107
Документация проекта/проектов + связи

Документация проекта/проектов + связи

Есть несколько проектов, взаимодействующих друг с другом по http api или console api или еще как-нибудь

111
Размер watermark imagine

Размер watermark imagine

Мне на картинку необходимо вставить текстовый watermark использую следующий код:

115