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-ის პარსინგი ვერ მოხერხდა.