# Ошибки парсера при разборе 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 не удалось.

←→
↑