Учесть кавычки в JSON C#

258
22 сентября 2017, 16:47

Получаю с сервера строку вида:

[1510,[0,0,0,0,0,0,0],0,[{\"195562162_456239289\":[\"HammAli & Navai Им грош цена\",\"https:\\/\\/m.vk.com\\/mp3\\/audio_api_unavailable.mp3...\",\"HammAli & Navai\",\"Им грош цена\",\"\",false],\"195562162_456239288\":[\"Градусы & Кравц Выходи за меня\",\"https:\\/\\/m.vk.com\\/mp3\\/audio_api_unavailable.mp3...\",\"Градусы & Кравц\",\"Выходи за меня\",\"\",false]},[\"\"],\"\"]]

Если получаю такую строку, то тут все хорошо работает. Я регуляркой достаю, что находится между { и } т.к. если парсить сразу эту строку, выдается исключение, что нельзя спарсить массив, нужен объект Но получается казус, если в какой либо строке присутствует кавычка (Например в строчке будет одна кавычка \"Им грош \" цена\"). Тогда выдается исключение Invalid property identifier character... Как это решить?

Answer 1

Используйте JArray вместо JObject так как у вас массив а не объект

var str = "[1510,[0,0,0,0,0,0,0],0,[{\"195562162_456239289\":[\"HammAli & Navai Им грош цена\",\"https:\\/\\/m.vk.com\\/mp3\\/audio_api_unavailable.mp3...\",\"HammAli & Navai\",\"Им грош цена\",\"\",false],\"195562162_456239288\":[\"Градусы & Кравц Выходи за меня\",\"https:\\/\\/m.vk.com\\/mp3\\/audio_api_unavailable.mp3...\",\"Градусы & Кравц\",\"Выходи за меня\",\"\",false]},[\"\"],\"\"]]";
var array = JArray.Parse(str);
READ ALSO
__proto__ поможет уменьшить затраты памяти?

__proto__ поможет уменьшить затраты памяти?

Я имею в виду, отличаются ли затраты памяти на:

244
Найти город в строке js

Найти город в строке js

Есть строки, к примеру:

281
Аргументы стрелочной функции

Аргументы стрелочной функции

Доброго времени суток

319
Последовательные вопросы в Telegram bot на Node.js

Последовательные вопросы в Telegram bot на Node.js

Доброго времени суток, есть желание сделать небольшой опросник в Telegram ботеИдея такя, бот задает вопрос, пользователь отвечает и бот задает...

461