Меню Закрыть

Php json encode кавычки

Я создаю строку 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, и не принес ничего.

Читайте также:  Как отменить умную таблицу в excel

После того, как я только что создал новый массив с числами int, этот путь идет без двойных кавычек.

Я не знаю, почему люди дают негатив, не спрашивая, почему вопрос.

На этот вопрос уже есть ответ:

Я создаю простой JSON API с использованием json_encode () функция. Теперь API успешно создан, но результат неожиданный, как я уже упоминал выше. Теперь, что я на самом деле хочу, я также упоминаю выше. Итак, как я могу получить ожидаемый результат? Пожалуйста, помогите мне.

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.