Функция json_validate в PHP 8.3

В версии PHP 8.3 появилась удобная функция для проверки корректности json строки.

 

Ранее, чтобы проверить валидность  json строки требовалось вызвать json_decode(), теперь же в этом нет необходимости:

// до версии 8.3
$string = '{"foo": 123}';

function isValidJson(string $string): bool {
    json_decode($string);

    return json_last_error() === JSON_ERROR_NONE;
}

var_dump(isValidJson($string));      // true



// начиная с версии 8.3+ 
var_dump(json_validate($string));    // true

Хорошим вариантом будет использование встроенных функций для получения ошибки валидации json строки, например для создания Exception с деталями, что пошло не так:

if (json_validate($_GET['json']) === false) {
    throw new \JsonException(json_last_error_msg(), json_last_error());
}

$res = json_decode($_GET['json']); 

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *