Кавычка в json

Шива

Client
Регистрация
05.02.2018
Сообщения
1 084
Благодарностей
339
Баллы
83
Есть вот такого вида json {"code":200,"lang":"ru-en","text":["fdsfdsifd"sofjsd"]}
Экшен json его обрабатывать не хочет.
Выдает
Выполнение действия Parse Json/Xml After parsing a value an unexpected character was encountered: s. Path 'text[0]', line 1, position 46.
Также кавычки могут быть такие
Есть вот такого вида json {"code":200,"lang":"ru-en","text":[""fdsfdsifdsofjsd"]}
Есть вот такого вида json {"code":200,"lang":"ru-en","text":["fdsfdsifdsofjsd""]}
Как правильно такое обработать?
 
Последнее редактирование:

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 717
Благодарностей
1 375
Баллы
113
Дак не по стандарту json то, вот и ругается
Кавычка эта должна быть экранирована с помощью \
делай сначала замену кавычки находящейся в кавычка на \", ну а потом уж в обработчик json'а пихай
 

Шива

Client
Регистрация
05.02.2018
Сообщения
1 084
Благодарностей
339
Баллы
83
Дак не по стандарту json то, вот и ругается
Кавычка эта должна быть экранирована с помощью \
делай сначала замену кавычки находящейся в кавычка на \", ну а потом уж в обработчик json'а пихай
Там еще перенос строки идет и все равно получается не валид.
 

specialist

Client
Регистрация
28.12.2018
Сообщения
732
Благодарностей
343
Баллы
63

Шива

Client
Регистрация
05.02.2018
Сообщения
1 084
Благодарностей
339
Баллы
83

specialist

Client
Регистрация
28.12.2018
Сообщения
732
Благодарностей
343
Баллы
63
Просто как вариант не валидности.
В таком случае вижу только 3 варианта решения проблемы:
1) Проверять через схему, Newtonsoft.Json.Schema и в случае ошибки обрабатывать заменами, приводя к валидному формату
2) Обрабатывать не как json, а как обычный текст. Или вырезать проблемную часть и только ее как текст
3) Указать разработчикам на ошибку, попросить исправить
 
  • Спасибо
Реакции: Mikhail B.

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 320
Благодарностей
5 424
Баллы
113

August TS

Client
Регистрация
28.09.2018
Сообщения
7
Благодарностей
10
Баллы
3
Это больше похоже на борьбу с софтами, а не ошибками на сайте)
Узнаю Notepad++ Но какой нюанс демонстрирует этот скриншот? Если ожидалось что будет совпадение с \\\", то надо включить нормальный режим поиска, без поддержки экранирующих символов.
95153
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 925
Благодарностей
6 389
Баллы
113
1. дергаешь регуляркой нужный текст
2. обрабатываешь/экранируешь до валида
3. пихаешь обратно
4. парсишь как json
5. профит

95166
 

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 320
Благодарностей
5 424
Баллы
113
Проще оказалось, просто привести код в читаемый для json. А потом уже отдельные переменные приводить в читаемый вид из юникода. Буд-то там двойной юникод, но если прогнать два раза, то json валится в ошибки.
 

specialist

Client
Регистрация
28.12.2018
Сообщения
732
Благодарностей
343
Баллы
63
Проще оказалось, просто привести код в читаемый для json
Скрипты для автоматического исправления подобных ошибок работают используя свой вариант парсера, разбирая на составляющие по типам и собирая валидный вариант, т.к кроме двойных кавычек бывают и другие ошибки.

Сейчас такое реже встречается, когда оборудование было слабее на хостингах, иногда передавались не все данные от сайта, получали обрезанный json, с недостающими данными.
 
  • Спасибо
Реакции: Mikhail B.

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)