English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Решение проблемы с json_decode, возвращающим NULL (обязательно к прочтению)

Данные, передаваемые с помощью POST или GET с APP端 или с других страниц, обычно в виде массива. Поскольку массив не легко передавать, его обычно преобразуют в json перед отправкой. Я думал, что отправитель json_encode(), а получатель json_decode(), решит проблему, но оказалось, что json_decode() возвращает NULL.

Обычно это означает, что не хватает параметра 'true', но если вернуться и посмотреть, то json_decode($data, true); Так почему бы это не было NULL? Может быть, кодировка? Но нет, после приема я напрямую печатаю его в виде полной json строки, и на сайте для парсинга json в Интернете он также может быть правильно парсинг.

Так что это за проблема? На самом деле, это проблема с кодировкой.

Правильный парсинг можно выполнить с помощью следующего метода.

$data = stripslashes(html_entity_decode($info)); // $info - это передаваемая json строка
$data = json_decode($data, TRUE);

Теперь $data является массивом, после его парсинга!

Функция html_entity_decode() преобразует HTML сущности в символы.
Функция stripslashes() удаляет обратные слеш.

Данное Json_decode решение проблемы с NULL при парсинге json строки - это все, что я хочу поделиться с вами. Надеюсь, это будет полезно, и希望大家 активно поддерживают урока.

Рекомендуется для просмотра