Главная/Статьи/PHP: Как создать JSON объект из PHP
PHP

PHP: Как создать JSON объект из PHP

Нередко возникает необходимость передать данные с PHP-бекенда на JavaScript-фронтенд. Фреймворки вроде Laravel автоматически конвертируют возвращаемые значения в JSON, однако при работе со сложными каталогами, например на Drupal, потребуются дополнительные усилия.

Решение простое — сформировать многоуровневый массив и преобразовать его в JSON с помощью встроенной функции json_encode().

Пример

$objects = [
    [
        'title' => 'Townhouse on the coast',
        'nid' => 12,
        'location' => [
            'costa' => ['id' => '73', 'name' => 'Costa Maresme'],
            'city'  => ['id' => '11', 'name' => 'Barcelona'],
            'town'  => ['id' => '3',  'name' => 'Eixample'],
        ]
    ],
    [
        'title' => 'Sweet Home',
        'nid' => 13,
        'location' => [
            'costa' => ['id' => '73', 'name' => 'Costa Maresme'],
            'city'  => ['id' => '11', 'name' => 'Montgat'],
            'town'  => ['id' => '3',  'name' => 'Centro'],
        ]
    ],
];

echo json_encode( $objects );

Функция json_encode() рекурсивно обходит массив любой вложенности и возвращает валидную JSON-строку, которую можно передать в JavaScript напрямую или через AJAX-ответ.