«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу эффективно обрабатывать неверные данные JSON с помощью PHP json_decode()?

Как я могу эффективно обрабатывать неверные данные JSON с помощью PHP json_decode()?

Опубликовано 25 ноября 2024 г.
Просматривать:520

How Can I Effectively Handle Bad JSON Data with PHP\'s `json_decode()`?

Обработка неверных данных JSON с помощью json_decode() в PHP

При работе с данными JSON с помощью json_decode() крайне важно обрабатывать недопустимые данные эффективно. Хотя предоставленный скрипт может обнаружить неверный JSON для строк, таких как { bar: "baz" }, он не может обрабатывать нестроковые данные, такие как "недопустимые данные".

Понимание json_decode()

Чтобы решить эту проблему, важно понимать json_decode():

  • Он возвращает декодированные данные или значение NULL в случае ошибки.
  • Он также может возвращать значение NULL, если строка JSON содержит значение NULL.
  • Выдает предупреждения об ошибках.

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

Чтобы подавить предупреждения, можно использовать оператор @ оператор:

$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