Как проверить JSON в PHP
Сниппет
Функция json_last_error возвращает последнюю ошибку, возникшую во время кодирования и декодирования JSON.
<?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 раза):
<?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 онлайн, вы можете использовать наш бесплатный инструмент.