JSON-ի վերլուծության սխալներ PHP-ում
Օգտագործելով json_last_error ֆունկցիան,
կարող ենք պարզել, թե կոնկրետ ինչ սխալ
է տեղի ունեցել JSON-ը վերլուծելիս։
Եկեք նայենք, թե ինչպես է դա
արվում։ Ենթադրենք ունենք
սխալ JSON.
<?php
$json = '["a", "b", "c",]';
?>
Փորձենք վերլուծել այն.
<?php
$data = json_decode($json);
var_dump($data); // կտպի null
?>
Քանի որ տեղի է ունեցել սխալ, ապա json_last_error
կանչելիս կվերադարձնի այդ սխալի համարը.
<?php
$error = json_last_error();
var_dump($error); // սխալի համար
?>
Վերադարձվող համարը կարելի է համեմատել PHP-ի հատուկ հաստատունների հետ։ Դրա հիման վրա կարելի է գրել կոդ, որը կբռնի տարբեր տիպի սխալներ.
<?php
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo 'սխալներ չկան';
break;
case JSON_ERROR_DEPTH:
echo 'հասնել է ստեկի առավելագույն խորությունը';
break;
case JSON_ERROR_STATE_MISMATCH:
echo 'սխալ բիթեր կամ ռեժիմների անհամապատասխանություն';
break;
case JSON_ERROR_CTRL_CHAR:
echo 'սխալ կառավարող նիշ';
break;
case JSON_ERROR_SYNTAX:
echo 'շարահյուսական սխալ, սխալ JSON';
break;
case JSON_ERROR_UTF8:
echo 'սխալ UTF-8 նիշեր, հնարավոր է սխալ կոդավորված';
break;
default:
echo 'անհայտ սխալ';
break;
}
?>
Տրված է տող որոշ JSON-ով։ Վերլուծեք այն PHP-ի տվյալների կառուցվածքի մեջ։ Տպեք վերլուծության արդյունքը կամ սխալի պատճառը, եթե հնարավոր չէր վերլուծել JSON-ը։