Я получаю ответ JSON в запросе Ajax с сервера. Таким образом он работает:
{ "a": "1", "b" : "hello 'kitty'" }
Но мне не удалось поставить двойные кавычки вокруг котенка.
Когда я конвертирую "в\x22 в ответе Ajax, он по-прежнему интерпретируется как" по JavaScript и я не могу разобрать JSON.
Должен ли я также избежать\и unescape позже (что было бы возможно)?
Как это сделать?
Изменить: я не уверен, правильно ли я это выразил: я хочу эту строку внутри "b" после синтаксического анализа:
hello "kitty"
При необходимости я мог бы добавить дополнительный шаг после анализа для преобразования "b" , но, я думаю, это не обязательно, есть более элегантный способ, чтобы это произошло автоматически?
Edit2: страница ajax создается php. Я попробовал несколько вещей, чтобы создать значение b, все это приводит к ошибке синтаксического анализа JSON на странице:
$b = 'hello "kitty"';
// no 1:
//$b = str_replace('"',"\x22",$b);
// or no 2:
// $b = addslashes($b);
// or no 3:
$b = str_replace('"','\"',$b);
echo '{ "a" : "1", "b" : "' . $b . '"}';
Edit3: это решение, наконец, работает:
$b = 'hello "kitty"';
$b = str_replace('"','\\"',$b);
echo '{ "a" : "1", "b" : "' . $b . '"}';