Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти Інструменти Події
Інше
Про нас

JSON у PHP-масив

Перетворити JSON на готовий PHP-масив

Дані не залишають ваш браузер

Цей інструмент повністю працює на вашому пристрої: обчислення виконує JavaScript у вкладці. Ми не надсилаємо введений текст на сервер, не зберігаємо і не логуємо його. Можете сміливо працювати з робочими даними - і навіть відключити інтернет після завантаження сторінки.

Результат

Поділитись

Навіщо це потрібно

Найчастіший сценарій - взяти реальну відповідь API і вставити її у код: у фікстуру для тесту, у сідер, у конфіг або в мок HTTP-клієнта. Переписувати вручну довго, а json_decode() у рантаймі не підходить, коли масив має бути прямо в коді.

Що на виході

Готовий PHP-масив із коротким синтаксисом [], відступами по 4 пробіли і комою після останнього елемента - як вимагає стиль Laravel і перевіряє Pint.

// З {"name":"Тест","tags":["php","laravel"]} вийде:
[
    'name' => 'Тест',
    'tags' => [
        'php',
        'laravel',
    ],
]

Перемикач вимикає короткий синтаксис, якщо потрібен старий array() - у сучасному коді він не потрібен, але зустрічається в legacy.

Особливості перетворення

Об'єкти стають асоціативними масивами, масиви - списками. У PHP це один тип, тому різниця зникає: {"0":"a"} і ["a"] дадуть однаковий результат.

null, true, false переносяться як є. Числа зберігають тип: 5 залишиться цілим, 5.0 - дробовим.

Лапки і слеші всередині рядків екрануються - результат можна вставляти в код без правок.

Де це стає в пригоді у Laravel

// Фікстура для тесту HTTP-клієнта
Http::fake([
    'api.example.com/*' => Http::response([
        'name' => 'Тест',
        'tags' => ['php', 'laravel'],
    ]),
]);
// Сідер зі списком, який прийшов із зовнішнього джерела
foreach ([
    ['name' => 'Київ', 'region' => 'Київська'],
    ['name' => 'Львів', 'region' => 'Львівська'],
] as $city) {
    City::create($city);
}
// Стан фабрики з реальними даними
public function fromApi(): static
{
    return $this->state(fn (): array => [
        'settings' => ['theme' => 'dark', 'locale' => 'uk'],
    ]);
}

Коли краще не вставляти масив у код

Якщо даних сотні рядків, їм місце у файлі - JSON поруч із тестом або сідером, який читається через json_decode(file_get_contents(...)). Величезний масив прямо в коді робить diff нечитабельним і сповільнює IDE.