Я использую приведенный ниже код для преобразования JSON в массив в PHP
,
Если JSON действителен, то json_decode()
работает хорошо и возвращает массив,
Но в случае неправильной формы JSON вернет NULL
,
<?php
function jsonDecode1($json){
$arr = json_decode($json, true);
return $arr;
}
// In case of malformed JSON, it will return NULL
var_dump( jsonDecode1($json) );
?>
Если в случае неправильно сформированного JSON вы ожидаете только массив, вы можете использовать эту функцию,
<?php
function jsonDecode2($json){
$arr = (array) json_decode($json, true);
return $arr;
}
// In case of malformed JSON, it will return an empty array()
var_dump( jsonDecode2($json) );
?>
Если в случае неправильно сформированного JSON вы хотите остановить выполнение кода, вы можете использовать эту функцию,
<?php
function jsonDecode3($json){
$arr = (array) json_decode($json, true);
if(empty(json_last_error())){
return $arr;
}
else{
throw new ErrorException( json_last_error_msg() );
}
}
// In case of malformed JSON, Fatal error will be generated
var_dump( jsonDecode3($json) );
?>