Возможный дубликат:
json_encode возвращает NULL?
У меня возникла странная проблема с json_encode()
в php. Довольно простой код:
$content = json_encode(array('content1' => $arm_length, 'content2' => $body_length)); echo $content;
$arm_length
и $body_length
содержат разметку HTML для двух выпадающих меню. Моя проблема заключается в том, что она выводит его NULL
content1
для content1
и content1
. Если я json_encode()
и просто сделаю print_r($content)
он отобразит все данные так, как должно быть.
Кто-нибудь знает, что здесь происходит? Существуют ли определенные данные, которые не могут быть проанализированы в JSON? Я сделал это несколько раз, используя Ajax / PHP и никогда не испытывал никаких проблем.
Приветствия за любую помощь в этом.
json_encode()
имеет (недокументированную) привычку без умозрительных свойств, которые содержат недопустимые символы (= не-UTF-8).
Убедитесь, что ваши входные данные закодированы в кодировке UTF-8, что является документированным требованием к этой функции.
В случае сбоя в кодировке
json_last_error()
может использоваться для определения точного характера ошибки. (Доступно только в PHP 5.3)
Связано: Как сохранить json_encode () от выпадающих строк с недопустимыми символами
цитаты внутри ваших vars "должны быть экранированы следующим образом: \" вы можете сделать это с помощью add_slashes ($ arm_length)
Также json выдает ошибки на \ n (новая строка) и некоторые другие символы, вы можете найти полный список здесь – http://json.org/