Как я могу поместить двойные кавычки внутри строки в ответ ajax JSON от php?

Я получаю ответ JSON в запросе Ajax с сервера. Таким образом, он работает:

{"a": "1", "b": "hello 'kitty"}

Но мне не удалось поставить двойные кавычки вокруг котенка .

Когда я конвертирую "в \ x22 в ответ Ajax, он все еще интерпретируется как" по JavaScript, и я не могу разобрать JSON.

Должен ли я также избежать \ и 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 . '"}'; 

Просто избегайте его обратным слэшем:

 > JSON.stringify({"a": 5, "b": 'a "kitty" mighty odd'}) {"a":5,"b":"a \"kitty\" mighty odd"} > JSON.parse('{"a":5,"b":"a \\"kitty\\" mighty odd"}') Object a: 5 b: a "kitty" mighty odd __proto__: Object 

Анализаторы JSON распознают \" внутри строк с двойными кавычками как двойную кавычку». Обратите внимание, что во втором примере необходим двойной обратный слэш, потому что есть парсер Javascript, а затем другой парсер JSON.

используйте только json_encode (любой элемент PHP), он автоматически анализирует.

Немного не по теме, вы можете использовать JavaScript / NodeJS на своем сервере и использовать литералы шаблонов ES6 (обратные элементы “ используются вокруг «христианских»), но через 7 лет вы, вероятно, уже используете NodeJS 🙂

 var myJSON = { "name": { "first": `"Christian"`, "last": "Broberg" }, "age": 49, "skills": [ "JavaScript", "React", "NodeJS" ], "married": false, "superpowers": null }