2016-09-17 1 views
0

Я не могу обернуть голову вокруг JSON в C#. Я использую JSON.NET, и обычно я могу определить класс, необходимый для преобразования. Однако в этом случае это сложно: имя для отдельных элементов списка отсутствует.Классы для использования с JSON.NET

{"error":[], "result":{"currency":[[2.0, 3.0, 4.0, 5.0], [6.0, 7.0, 8.0, 9.0], ... ]}} 

Это пример из памяти, я надеюсь, что синтаксис прав.

Итак, когда я пытаюсь создать классы, я не знаю с чего начать. Скажите, меня интересует пара result. Является ли «валюта» списком списков? Как мне сопоставить значение для списка (2.0, 3.0, 4.0, 5.0) и его приложение result?

Не уверен, что вообще ...

+1

Почему бы вам не использовать конвертер сайта, такой как JSON2C#? –

ответ

1

Валюта список списков в два раза. Ваш объект Результат должен выглядеть примерно так:

public class Result { 
    List<List<double>> Currency {get;set;} 
} 

Кроме того, Visual Studio имеет «Специальная вставка» в разделе меню Edit, который может быть использован для включения в XML или строку JSON из буфера обмена в классы C#, которые соответствуют структура.

+0

А, это имеет больше смысла. Но так как у 'double' нет имени, я бы получил (надеюсь) упорядоченный 'List'. Как бы вы присвоили значения (в правильном порядке) пользовательским переменным в классе? – Alexej

+0

Я бы рекомендовал, чтобы любое сопоставление уровня бизнес-логики выполнялось за пределами разбора объекта JSON. Просто потому, что эти значения появляются в группах по 4 в большинстве случаев, не дают гарантии, что они всегда будут делать это, и обычно будет проще определить источник проблемы с отображением, чем синтаксический анализ. –

+0

Итак, вы бы посоветовали сопоставить объект JSON как есть и обработать данные в методе позже? Как я могу гарантировать, какие значения я пытаюсь внести в переменные? Является ли List упорядоченным в способе предоставления JSON, поэтому я могу использовать нотацию массива или 'LINQ'? – Alexej

1

Чтобы избежать ошибок, вы можете сделать так: скопируйте свой JSON-файл, перейдите в Visual Studio => Edit => Вставить Special => Вставить JSON как класс. Это создаст классы для вас.