Json String с закомментированными кавычками в переменной - PullRequest
0 голосов
/ 05 августа 2011

У меня есть строка JSON, жестко запрограммированная в моем Javascript.

valiJsonString = '{"ssss","ddddddddd\"ddd"}';

DOM говорит -> {"ssss","ddddddddd"ddd"}

Может кто-нибудь сказать мне, почему JavaScript заменяет мой \" на "?

// try to parse
valiJsonString secureEvalJSON (valiJsonString)   //<-- error: jsonString is not valid

рабочий пример

Ответы [ 4 ]

2 голосов
/ 05 августа 2011

«DOM говорит» не имеет особого смысла, так как DOM ничего не говорит.Вы имеете в виду браузер объектов в Firebug (или какой-либо другой консоли разработки)?

Теперь внутри строки \" - это символ кавычки.Вы должны компенсировать это экранирование, так как вы не хотите этого, но вместо этого - дословная черта.

Так что, возможно, вы хотите \\, за которым следует ", то есть косая черта, за которой следует символ кавычки.

Кроме того, данный JSON выглядит так, как будто он должен представлять массив , а не объект , поскольку у вас нет ключей:

var str = '["ssss","ddddddddd\\"ddd"]';

Фактическое значение этой строки в формате JSON в вашем браузере:

["ssss","ddddddddd\"ddd"]
2 голосов
/ 05 августа 2011

Если вы хотите, чтобы ваша строка проходила через экранированный символ, вам нужно экранировать свой экранирующий символ:

valiJsonString = '{"ssss","ddddddddd\\"ddd"}';
2 голосов
/ 05 августа 2011

\ является escape-символом. попробуйте \\

1 голос
/ 05 августа 2011

Я добавил второй \ (\ является escape-символом) и исправил отсутствие = и тип таблицы {} vs []

http://jsfiddle.net/4wVaR/9/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...