Я создаю строку JSON из массива PHP. Я закодировал его с помощью json_encode() .
$data локализуется с помощью wp_localize_script() и доступна через глобальную переменную data .
В файле JS я могу получить доступ к информации следующим образом:
Это приводит к выводу:
Ввод этого результата в http://jsonlint.com/ возвращает ошибку. Удаление двойных кавычек вокруг «специального» проверяет строку.
Каков наилучший способ создать строку JSON из PHP и правильно экранировать ее для использования в файле JS?
Всего 6 ответов
Тем не менее, кавычки "приведут к недопустимому JSON, но это проблема, только если вы используете json_encode () и просто ожидаете, что PHP волшебным образом экранирует ваши кавычки. Вы должны сделать экранирование самостоятельно.
Другим способом было бы закодировать кавычки, используя htmlspecialchars :
Я успешно только что сделал это:
json_encode() по умолчанию будет экранировать " to " . Но это все-таки неправильно JSON для json.PARSE() . Таким образом, добавив опцию JSON_HEX_QUOT , json_encode() заменит " на u0022 . json.PARSE() все равно не понравится u0022 . Поэтому нам нужно заменить u0022 на " . \" сбежал " .
ПРИМЕЧАНИЕ: вы можете добавить опцию JSON_HEX_APOS чтобы заменить одиночную кавычку на значение HEX JSON_HEX_APOS если у вас есть JSON_HEX_APOS с одинарными JSON_HEX_APOS в JavaScript.
например: 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
Это решение, которое заботится об одинарных и двойных кавычках:
Я только столкнулся с этой проблемой, и фактическая проблема состояла в том, что я забыл добавить надлежащий заголовок application / json, прежде чем выплевывать фактические данные JSON.
Я использую json_encode для отображения некоторых данных.
Как я могу удалить двойные кавычки из значений из моих данных?
Решение
Ситуация: мне нужно привести число, чтобы соединить с highstock, и не принес ничего.
После того, как я только что создал новый массив с числами int, этот путь идет без двойных кавычек.
Я не знаю, почему люди дают негатив, не спрашивая, почему вопрос.
На этот вопрос уже есть ответ:
Я создаю простой JSON API с использованием json_encode () функция. Теперь API успешно создан, но результат неожиданный, как я уже упоминал выше. Теперь, что я на самом деле хочу, я также упоминаю выше. Итак, как я могу получить ожидаемый результат? Пожалуйста, помогите мне.