Как я могу десериализации следующий JSON в пользовательский объект с помощью C# и Json.NET:Как десериализовать массив JSON, содержащий объект, содержащий массив массивов с Json.NET и C#?
[ {
'data': [
[ '100473','3481282801.0' ],
[ '100472','3481275600.0' ],
[ '100471','3481273800.0' ],
[ '100470','3481263900.0' ],
[ '100469','3481263000.0' ]
],
'error': '',
'statement_time': 0.00440700000000000030,
'total_time': 0.00475200000000000010
} ]
Это массив, содержащий один объект. Чтобы сделать вещи более интересными, объект содержит массив массивов. (К сожалению, у меня нет контроля над форматом.) Я относительно новичок в JSON и думал, что попробую Json.NET. Я открыт для других систем JSON, если это упростит ситуацию.
Это то, что я пробовал сначала, но он дает мне следующее сообщение об ошибке: Не удается десериализовать текущий массив JSON (например, [1,2,3]) в тип «Целевой», потому что для требуемого дескрипции типа требуется объект JSON (например, {«name»: «value»}). Чтобы исправить эту ошибку, либо измените JSON на объект JSON (например, {"name": "value"}), либо измените десериализованный тип на массив или тип, реализующий интерфейс коллекции (например, ICollection, IList), например List которые можно десериализовать из массива JSON. JsonArrayAttribute также может быть добавлен к типу, чтобы заставить его десериализоваться из массива JSON. –
Ryan
Я попытался программно удалить квадратные скобки с начала и конца (внешний массив), прежде чем пытаться десериализовать объект. Сейчас он работает, но это лучший способ сделать это? Я не знаю, почему система, которую я запрашиваю, возвращает объект в массиве. Я не вижу никакого преимущества в этом формате. – Ryan
@ Ryan Учитывая ваш json в вопросе, над кодом работает отлично. (Я протестировал его еще раз, прежде чем писать этот комментарий) – I4V