Ontlederfoute tydens die ontleding van JSON in PHP
Met behulp van die funksie json_last_error
kan jy uitvind watter spesifieke fout
tydens die ontleding van JSON plaasgevind het.
Kom ons kyk hoe dit
gedoen word. Gestel ons het
'n onkorrekte JSON:
<?php
$json = '["a", "b", "c",]';
?>
Kom ons probeer om dit te ontleed:
<?php
$data = json_decode($json);
var_dump($data); // sal null vertoon
?>
Aangesien daar 'n fout was, sal json_last_error
by oproep die nommer van daardie fout teruggee:
<?php
$error = json_last_error();
var_dump($error); // foutnommer
?>
Die teruggekeerde nommer kan vergelyk word met spesiale PHP-konstantes. Gebaseer hierop kan jy kode skryf wat verskillende tipes foute opvang:
<?php
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo 'geen foute nie';
break;
case JSON_ERROR_DEPTH:
echo 'maksimum stapeldiepte bereik';
break;
case JSON_ERROR_STATE_MISMATCH:
echo 'onkorrekte syfers of modus-wanpas';
break;
case JSON_ERROR_CTRL_CHAR:
echo 'onkorrekte beheerkarakter';
break;
case JSON_ERROR_SYNTAX:
echo 'sintaksfout, onkorrekte JSON';
break;
case JSON_ERROR_UTF8:
echo 'onkorrekte UTF-8-karakters, moontlik verkeerd geënkodeer';
break;
default:
echo 'onbekende fout';
break;
}
?>
Gegee 'n string met 'n sekere JSON. Ontleed dit in 'n PHP-datastruktuur. Vertoon die resultaat van die ontleding of die rede vir die fout, indien die ontleding van JSON nie suksesvol was nie.