Kesalahan Parser saat Parsing JSON di PHP
Dengan menggunakan fungsi json_last_error
kita dapat mengetahui kesalahan apa
yang terjadi saat parsing JSON.
Mari kita lihat bagaimana cara
melakukannya. Misalkan kita memiliki
JSON yang tidak benar:
<?php
$json = '["a", "b", "c",]';
?>
Mari kita coba untuk menguraikannya:
<?php
$data = json_decode($json);
var_dump($data); // akan mengeluarkan null
?>
Karena terjadi kesalahan, maka json_last_error
saat dipanggil akan mengembalikan nomor kesalahan tersebut:
<?php
$error = json_last_error();
var_dump($error); // nomor kesalahan
?>
Nomor yang dikembalikan dapat dibandingkan dengan konstanta khusus PHP. Berdasarkan hal ini, kita dapat menulis kode yang menangkap berbagai jenis kesalahan:
<?php
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo 'tidak ada kesalahan';
break;
case JSON_ERROR_DEPTH:
echo 'kedalaman maksimum stack tercapai';
break;
case JSON_ERROR_STATE_MISMATCH:
echo 'bit tidak valid atau ketidakcocokan mode';
break;
case JSON_ERROR_CTRL_CHAR:
echo 'karakter kontrol tidak valid';
break;
case JSON_ERROR_SYNTAX:
echo 'kesalahan sintaks, JSON tidak valid';
break;
case JSON_ERROR_UTF8:
echo 'karakter UTF-8 tidak valid, mungkin dikodekan dengan salah';
break;
default:
echo 'kesalahan tidak diketahui';
break;
}
?>
Diberikan sebuah string dengan JSON tertentu. Uraikan JSON tersebut menjadi struktur data PHP. Tampilkan hasil penguraian atau alasan kesalahan jika penguraian JSON gagal.