Обнаружение сбоя декодирования json() в PHP
При использовании PHP json_decode()
я не вижу способа отличить возвращаемое значение NULL
, указывающее на сбой в декодировании, и правильно декодированное значение NULL
:
var_dump(json_decode('nonsense')); // returns NULL
var_dump(json_decode(json_encode(NULL))); // also returns NULL
И в случае, если один не создает исключения. Так что я не уверен, как проверить наличие сбоя декодирования.
Идеи?
17
Author: Anthony Forloney, 2010-02-23
1 answers
Вам придется проверить json_last_error
для любых ошибок синтаксического анализа JSON.
json_decode($string);
switch(json_last_error()) {
case JSON_ERROR_DEPTH:
echo ' - Maximum stack depth exceeded';
break;
case JSON_ERROR_CTRL_CHAR:
echo ' - Unexpected control character found';
break;
case JSON_ERROR_SYNTAX:
echo ' - Syntax error, malformed JSON';
break;
case JSON_ERROR_NONE:
echo ' - No errors';
break;
}
33
Author: Anthony Forloney, 2010-02-28 18:34:50