Как создать структуру класса С#, основанную на структуре json?

58
6

Я использую Javascript-библиотеку, которая ожидает, что данные будут в определенном формате json, как показано ниже. Я буду использовать.NET для получения данных и передачи их в библиотеку с помощью десериализации json. Однако я не уверен, как классы С# сериализуются в json. Будет ли встроенный сериализатор.NET json поддерживать эту структуру json или мне нужно инвестировать в более сложную библиотеку, например json.net? Я никогда не использовал json.net. Мой подход состоит в том, чтобы сделать несколько методов проб и ошибок, создающих разные классы С#, и посмотреть на выход json, пока структура json не соответствует формату ниже. Это кажется неэффективным и трудоемким, и я хотел бы знать, есть ли лучший подход.

Примечание. Каждый узел второго уровня может иметь 1 или более детей. Например: те, у которых есть playcount 276, 271.

{
"children": [
{
"children": [
{
"children": [],
"data": {
"playcount": "276",
"$color": "#8E7032",
"image": "http://userserve-ak.last.fm/serve/300x300/11403219.jpg",
"$area": 276
},
"id": "album-Thirteenth Step",
"name": "Thirteenth Step"
},
{
"children": [],
"data": {
"playcount": "271",
"$color": "#906E32",
"image": "http://userserve-ak.last.fm/serve/300x300/11393921.jpg",
"$area": 271
},
"id": "album-Mer De Noms",
"name": "Mer De Noms"
}
],
"data": {
"playcount": 547,
"$area": 547
},
"id": "artist_A Perfect Circle",
"name": "A Perfect Circle"
},
.....

спросил(а) 2020-03-25T18:11:46+03:00 7 месяцев, 1 неделя назад
1
Решение
90

Или.. вы могли бы просто сделать это наоборот:

http://json2csharp.com/

Бросьте свой Json туда, и он выплюнет классы С#.. таким образом, имитируя формат Json. Не нужно вручную проверять и исправить ошибку.

ответил(а) 2020-03-25T18:24:34.085120+03:00 7 месяцев, 1 неделя назад
41

Используйте этот http://jsonclassgenerator.codeplex.com/

Я использую это довольно давно, и это лучший способ генерации класса С# из вашего JSON. После создания класса вы можете сериализовать его с помощью JSON.NET, чтобы получить желаемый JSON.

ответил(а) 2020-03-25T18:11:46+03:00 7 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема