awilum.ru
Статьи Курсы Об авторе

Преобразование строки в массив JSON в PHP

Одним из наиболее распространенных сценариев в веб-разработке является преобразование строки, содержащей данные в формате JSON, в массив PHP. Этот процесс необходим для обработки данных, полученных, например, от внешнего API или из других источников данных. После преобразования данные могут быть легко использованы и обработаны в рамках приложения, написанного на PHP.

Что такое JSON?

JSON (JavaScript Object Notation) - это формат обмена данными, основанный на синтаксисе JavaScript. Он легко читаем для людей и легко обрабатываем для компьютеров. JSON состоит из пар “ключ: значение” и представляет собой или объект, или массив.

Пример JSON-объекта:

{
    "name": "John",
    "age": 30,
    "city": "New York"
}

Преобразование строки JSON в массив PHP

Функция json_decode()

В PHP есть встроенная функция json_decode(), которая преобразует строку JSON в соответствующую структуру данных PHP.

$json_string = '{"name": "John", "age": 30, "city": "New York"}';

// Преобразование строки JSON в массив PHP
$array_data = json_decode($json_string, true);

// Вывод массива
print_r($array_data);

Результат:

Array
(
    [name] => John
    [age] => 30
    [city] => New York
)

Параметр true в json_decode() используется для указания, что объект должен быть преобразован в ассоциативный массив.

Обработка ошибок

$json_string = '{"name": "John", "age": 30, "city": "New York"}';

// Преобразование строки JSON в массив PHP
$array_data = json_decode($json_string, true);

if (json_last_error() === JSON_ERROR_NONE) {
    print_r($array_data);
} else {
    echo 'Ошибка при разборе JSON: ' . json_last_error_msg();
}

Этот код обрабатывает возможные ошибки при разборе строки JSON и выводит сообщение об ошибке в случае неудачи.

Функция json_last_error() в PHP используется для получения кода последней ошибки, произошедшей при работе с JSON. Она предоставляет удобный способ проверки статуса разбора JSON-данных после использования функции json_decode() или json_encode().

Вот некоторые распространенные коды ошибок JSON, которые могут быть возвращены функцией json_last_error():

JSON_ERROR_NONE (0) Нет ошибки. Этот код возвращается, когда разбор JSON прошел успешно.
JSON_ERROR_DEPTH (1) Превышена максимальная глубина стека.
JSON_ERROR_DEPTH (1) Превышена максимальная глубина стека.
JSON_ERROR_STATE_MISMATCH (2) Некорректный или некорректно заключенный JSON.
JSON_ERROR_CTRL_CHAR (3) Найден неожиданный управляющий символ.
JSON_ERROR_SYNTAX (4) Синтаксическая ошибка, некорректный JSON.

Пример с массивом JSON

$json_string = '[{"name": "John", "age": 30}, {"name": "Alice", "age": 25}]';

// Преобразование строки JSON в массив PHP
$array_data = json_decode($json_string, true);

// Вывод массива
print_r($array_data);

Результат:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 30
        )

    [1] => Array
        (
            [name] => Alice
            [age] => 25
        )

)
Обнаружили ошибку в этой статье? Хотите уточнить, обновить или добавить что-то?
Все мои статьи доступны для редактирования на GitHub. Буду благодарен за любое улучшение или исправление!