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

JSON форматування

Перевірити, відформатувати або стиснути JSON

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

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

JSON коректний

Результат

Поділитись

Навіщо форматувати JSON

Стиснутий JSON з логу чи відповіді API - це один довгий рядок, у якому неможливо знайти потрібне поле. Форматування розставляє відступи й переноси, і структура стає видимою. Зворотна операція - мініфікація - прибирає все зайве перед відправкою.

Друга, важливіша функція - перевірка. Якщо JSON зламаний, інструмент покаже, у якому місці, а не просто скаже «помилка».

Типові помилки, які тут видно одразу

  • Кома після останнього елемента - {"a": 1,}. У JavaScript це дозволено, у JSON - ні.
  • Одинарні лапки - {'a': 1}. JSON визнає лише подвійні.
  • Ключ без лапок - {a: 1}. Це об'єкт JavaScript, а не JSON.
  • Коментарі - у JSON їх немає взагалі.
  • NaN або Infinity - не існують у специфікації.

Робота з JSON у PHP

// Декодування в асоціативний масив
$data = json_decode($json, true);

// Мовчазний null при помилці - джерело важковловимих багів.
// Краще одразу вимагати виняток:
$data = json_decode($json, true, flags: JSON_THROW_ON_ERROR);
// Кодування: два прапорці, без яких результат буде некрасивим
json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);

Готовий масив можна одразу перетворити на PHP.

JSON_UNESCAPED_UNICODE критичний для української. Без нього «Привіт» перетворюється на Привіт - валідно, але нечитабельно і втричі більше за розміром.

У Laravel

// Відповідь API: Laravel серіалізує сам
return response()->json($user);

// Каст поля в моделі - працює як масив, зберігається як JSON
protected function casts(): array
{
    return ['settings' => 'array'];
}

// Запити всередину JSON-колонки (MySQL, PostgreSQL)
User::where('settings->theme', 'dark')->get();
User::whereJsonContains('settings->roles', 'admin')->get();
// Валідація JSON-рядка, що приходить у полі
$request->validate(['payload' => ['required', 'json']]);

Велика відповідь

Якщо JSON важить десятки мегабайтів, json_decode() підніме його в пам'ять цілком. Для таких випадків потрібен потоковий парсер, а не цей інструмент - тут усе обробляється у вашій вкладці, і дуже великий вміст просто підвісить браузер.