Обработка неверных данных JSON с помощью json_decode() в PHP
При работе с данными JSON с помощью json_decode() крайне важно обрабатывать недопустимые данные эффективно. Хотя предоставленный скрипт может обнаружить неверный JSON для строк, таких как { bar: "baz" }, он не может обрабатывать нестроковые данные, такие как "недопустимые данные".
Понимание json_decode()
Чтобы решить эту проблему, важно понимать json_decode():
Подавление предупреждений с помощью оператора @
Чтобы подавить предупреждения, можно использовать оператор @ оператор:
$data = @json_decode($_POST);
Этот подход отключает предупреждение, но требует дополнительных проверок для обработки ошибок и нулевых значений:
if ($data === null && json_last_error() !== JSON_ERROR_NONE) { echo "Incorrect data"; }
Пользовательская обработка ошибок
Другой вариант — создать собственный скрипт обработки ошибок:
function handle_json_error() { $error = json_last_error(); switch ($error) { case JSON_ERROR_NONE: return true; case JSON_ERROR_DEPTH: echo "Maximum depth exceeded"; break; case JSON_ERROR_STATE_MISMATCH: echo "Invalid or malformed JSON"; break; case JSON_ERROR_CTRL_CHAR: echo "Control character error"; break; case JSON_ERROR_SYNTAX: echo "Syntax error"; break; case JSON_ERROR_UTF8: echo "Malformed UTF-8 characters"; break; default: echo "Unknown error"; } return false; } if (!handle_json_error()) { echo "Bad JSON data!"; }
Этот скрипт выдает подробные сообщения об ошибках и обрабатывает различные ошибки синтаксического анализа JSON.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3