Задать вопрос
@vladimirkostenko96

Как распарсить необычный файл JSON на С#?

Язык C#, файл формата JSON:
[
[
[1,"Aple",1,"Aple",,1,"s",19],
[2,"Orange",2,"Orange",,0,"bb",8],
[25,"Raspberry",25,"Raspberry",,1,"-1",1]
]
]
Парсил как-то json используя NewtonSoft - получалось. Но встретил данный файл - не пойму как его распарсить. Знаний не хватает. Хелп
  • Вопрос задан
  • 2742 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
@Evsign
Это не json.
Когда будет валидный json идёте json2csharp.com , генерируете классы.
Потом с помощью NewtonSoft
RootObject json = JsonConvert.DeserializeObject<RootObject>(your_json_string);

Ну и далее по полям в объекте json
Ответ написан
Комментировать
viktorvsk
@viktorvsk
К сожалению, это невалидный JSON.
Если взглянуть на спецификацию: www.json.org справа в слобце используемых лексем можно увидеть, что пустое значение должно передаваться как null.
У вас же есть последовательность ,,

Приведенный источник, видимо сам немного умный и делает некоторые допущения при парсинге.

Вы можете попробовать перед парсингом заменить вот такой регулярное выражение:
/\,\s?+,/ на такую строку ',null,'

Для вашего примера сойдет, но надо помнить, что такой вот JSON:
{ "key": "val,,ue" } такой подход тоже превратит в { "key": "val,null,ue" }

Сходе не пришла мысль, как регуляркой выделить не строчные элементы. Это, наверное, не так то и просто, если учесть, что любой элемент будет находиться между двумя кавычками очень часто.

Как первый вариант обхода этой ситуации, можно сначала разделять каждый массив по запятым и удалять или присваивать null пустым элементам... Но и это нелегко и будут свои ограничения.

Это невалидный формат данных. Здесь просто не будет
Ответ написан
Комментировать
@vladimirkostenko96 Автор вопроса
онлайн вьювер (jsonviewer.stack.hu/) распознал - вывел структуру. Даже не знаю что и добавить.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы