Я создаю строку JSON из массива PHP.  Я закодировал его с помощью json_encode() . 
 $data = array( 'title' => 'Example string\'s with "special" characters' ); $data = json_encode( $data ); 
  $data локализовано с помощью wp_localize_script() и доступно через глобальную переменную data . 
В JS-файле я могу получить доступ к следующей информации:
 var data = data.replace( /"/g, '"' ), jsonData = jQuery.parseJSON( data ); console.log( jsonData ); 
Это приводит к выводу:
 { "title":"Example string's with "special" characters" } 
Ввод этого результата в http://jsonlint.com/ возвращает ошибку. Удаление двойных кавычек вокруг «специального» проверяет строку.
Каков наилучший способ создания JSON-строки из PHP и надлежащим образом избежать ее использования в JS-файле?
С http://www.php.net/manual/en/function.json-encode.php#100565
Тем не менее, цитаты «будут приводить к недопустимому JSON, но это только проблема, если вы используете json_encode () и просто ожидаете, что PHP волшебным образом избежит ваших котировок. Вам нужно выполнить эвакуацию самостоятельно.
Другой способ заключается в кодировании кавычек с использованием htmlspecialchars :
 $json_array = array( 'title' => 'Example string\'s with "special" characters' ); $json_decode = htmlspecialchars(json_encode($json_array), ENT_QUOTES, 'UTF-8'); 
Я просто сделал это:
 $json = str_replace("\u0022","\\\\\"",json_encode( $phpArray,JSON_HEX_QUOT)); 
  По умолчанию json_encode () будет удаляться " до \" .  Но это все еще неправильно JSON для json.PARSE() .  Поэтому, добавив опцию JSON_HEX_QUOT , json_encode () заменит " с помощью \u0022 . json.PARSE() все равно не понравится \u0022 . Поэтому нам нужно заменить \u0022 \\" .  \\\\\" экранировано \\" . 
ПРИМЕЧАНИЕ. Вы можете добавить опцию JSON_HEX_APOS, чтобы заменить одиночную кавычку значением HEX в unicode, если у вас есть проблема с одиночной кавычкой javascript. ex: json_encode ($ phpArray, JSON_HEX_APOS | JSON_HEX_QUOT));
Используйте json_encode ($ json_array, JSON_HEX_QUOT); поскольку php 5.3: http://php.net/manual/en/json.constants.php