Я получаю ответ JSON в запросе Ajax с сервера. Так работает:
{"a": "1", "b": "hello 'kitty'"}
Но мне не удалось поставить двойные кавычки вокруг котенок .
Когда я конвертирую "\ x22 в ответе Ajax, он все равно интерпретируется как" JavaScript, и я не могу разобрать JSON.
Должен ли я также выйти из \ and unescape позже (что было бы возможно)?
Как это сделать?
Редактировать: Я не уверен, правильно ли я это выразил: я хочу эту строку внутри "b" после анализа:
привет "котенок"
При необходимости я мог бы также добавить дополнительный шаг после разбора для преобразования «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 . '"}';