Ralat Parser semasa Menguraikan JSON dalam PHP
Dengan menggunakan fungsi json_last_error
kita boleh mengetahui ralat yang tepat
berlaku semasa menguraikan JSON.
Mari kita lihat bagaimana ini
dilakukan. Katakan kita mempunyai
JSON yang tidak betul:
<?php
$json = '["a", "b", "c",]';
?>
Mari cuba uraikannya:
<?php
$data = json_decode($json);
var_dump($data); // akan mengeluarkan null
?>
Oleh kerana berlakunya ralat, json_last_error
apabila dipanggil akan mengembalikan nombor ralat tersebut:
<?php
$error = json_last_error();
var_dump($error); // nombor ralat
?>
Nombor yang dikembalikan boleh dibandingkan dengan pemalar khas PHP. Berdasarkan ini, kita boleh menulis kod yang menangkap pelbagai jenis ralat:
<?php
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo 'tiada ralat';
break;
case JSON_ERROR_DEPTH:
echo 'kedalaman maksimum timbunan dicapai';
break;
case JSON_ERROR_STATE_MISMATCH:
echo 'bit tidak betul atau ketidaksesuaian mod';
break;
case JSON_ERROR_CTRL_CHAR:
echo 'aksara kawalan tidak betul';
break;
case JSON_ERROR_SYNTAX:
echo 'ralat sintaks, JSON tidak betul';
break;
case JSON_ERROR_UTF8:
echo 'aksara UTF-8 tidak betul, mungkin dikodkan secara tidak betul';
break;
default:
echo 'ralat tidak diketahui';
break;
}
?>
Diberi rentetan dengan JSON tertentu. Uraikannya kepada struktur data PHP. Paparkan hasil uraian atau sebab ralat, jika penguraian JSON gagal.