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.
- Де виконується
- у браузері
- Категорія
- Дані та формати