Як перевірити JSON в PHP

Сніппет

Функція json_last_error повертає останню помилку, що виникла під час кодування та декодування JSON.

downloadcopy
<?php
function isJSON($string) {
    if(is_array($string)) return false;
    if(!empty($string)){
        if($string == '{}') return true;
        json_decode($string);
        if(json_last_error() === JSON_ERROR_NONE) return true;
    }
    return false;
}

$json = '{"website":{"domain":"wtools.io","title":"Online Web Tools"}}';
if(isJSON($json)){
    echo "Дійсний JSON";
} else {
    echo "Недійсний JSON";
}

Але найкращий спосіб - це функція, яка повертає масив або false - якщо JSON недійсний (щоб уникнути виклику функції json_decode 2 рази):

downloadcopy
<?php
function isJSON($string) {
    if(!empty($string) && !is_array($string)){
        if($string == '{}') return [];
        $res = json_decode($string, true);
        if(json_last_error() === JSON_ERROR_NONE) return $res;
    }
    return false;
}

$json = '{"website":{"domain":"wtools.io","title":"Online Web Tools"}}';
$data = isJSON($json);
if($data!==false){
    print_r($data);
} else {
    echo "Недійсний JSON";
}

Якщо ви хочете перевірити JSON онлайн, Ви можете використати наш безкоштовний інструмент.