JSON parsēšanas kļūdas PHP
Izmantojot funkciju json_last_error
var uzzināt, kāda tieši kļūda
radās, parsējot JSON.
Paskatīsimies, kā to
izdarīt. Pieņemsim, ka mums ir
nekorekts JSON:
<?php
$json = '["a", "b", "c",]';
?>
Mēģināsim to parsēt:
<?php
$data = json_decode($json);
var_dump($data); // izvadīs null
?>
Tā kā radās kļūda, tad json_last_error
izsaukšanas brīdī izvadīs šīs kļūdas numuru:
<?php
$error = json_last_error();
var_dump($error); // kļūdas numurs
?>
Atgriezto numuru var salīdzināt ar speciālām PHP konstantēm. Pamatojoties uz to, var uzrakstīt kodu, kas notver dažāda veida kļūdas:
<?php
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo 'nav kļūdu';
break;
case JSON_ERROR_DEPTH:
echo 'sasniegts maksimālais kaudzes dziļums';
break;
case JSON_ERROR_STATE_MISMATCH:
echo 'nekorekti biti vai režīmu neatbilstība';
break;
case JSON_ERROR_CTRL_CHAR:
echo 'nekorekts vadības simbols';
break;
case JSON_ERROR_SYNTAX:
echo 'sintakses kļūda, nekorekts JSON';
break;
case JSON_ERROR_UTF8:
echo 'nekorekti UTF-8 simboli, iespējams, nepareizi kodēti';
break;
default:
echo 'nezināma kļūda';
break;
}
?>
Dota virkne ar kādu JSON. Parsējiet to PHP datu struktūrā. Izvadiet parsēšanas rezultātu vai kļūdas iemeslu, ja JSON neizdevās parsēt.