Форматувати та робити відступи у JSON

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

Навіщо форматування JSON?

Форматування JSON дозволяє зробити JSON-дані більш читабельними та зрозумілими для розробників та користувачів. Це полегшує відлагодження, перегляд коду та аналіз даних, особливо при роботі зі складними та великими JSON-файлами. Добре відформатований JSON також може бути легше інтегрований у документи та звіти.

Як форматувати JSON

На сторінці форматування ви можете відформатувати ваш JSON, вставивши його у відведене текстове поле або завантаживши файл, що містить JSON.

Після подачі JSON він буде відформатований і відображений в зоні результату. Якщо JSON є недійсним, буде показано помилку із зазначенням характеру проблеми.

Використання відформатованого JSON

Ви можете скопіювати відформатований JSON за допомогою відповідної кнопки копіювання. Це полегшить інтеграцію JSON у ваші проекти або звіти.

Ваш JSON-код повинен виглядати приблизно так:


{
    "id": 12345,
    "name": "John Doe",
    "email": "johndoe@example.com",
    "address": {
        "street": "123 Main St",
        "city": "Springfield",
        "state": "IL",
        "postalCode": "62704",
        "country": "USA"
    }
}

    

Часті запитання

В чому різниця між форматером, валідатором та мінімізатором JSON?

Форматер (beautifier) переписує компактний JSON у версію з відступами та читабельну. Валідатор перевіряє лише, що синтаксис відповідає специфікації (RFC 8259) і повідомляє про помилки. Мінімізатор робить зворотне форматеру: він видаляє всі пробіли для зменшення розміру файлу. Наш інструмент поєднує форматування та валідацію: якщо JSON є недійсним, повідомлення про помилку вказує позицію проблеми.

Чи приймає стандартний JSON коментарі та кінцеві коми?

Ні. Специфікація JSON (RFC 8259) суворо забороняє коментарі (// або /* */) та кінцеві коми після останнього елемента масиву або об'єкту. Якщо вони вам потрібні, зверніть увагу на JSON5 або JSONC, два розширення, що приймають коментарі та кінцеві коми, що використовуються зокрема конфігураційними файлами VS Code та TypeScript.

Чому рядки повинні використовувати подвійні лапки?

Специфікація JSON вимагає подвійних лапок (") для всіх рядків і всіх ключів об'єкту. Одинарні лапки (') є недійсними, навіть якщо JavaScript їх приймає. Часта помилка при копіюванні з JS-коду - збереження одинарних лапок: форматер тоді сигналізує помилку парсингу.

Як обробляти великі числа або дуже точні числа з комою?

JSON не розрізняє цілі та числа з плаваючою комою: все є number. Парсери JavaScript автоматично конвертують у Number, що втрачає точність понад 2^53 (цілі) і має точність з плаваючою комою обмежену 15 значущими цифрами. Для довгих ідентифікаторів (Twitter IDs, snowflakes Discord) або фінансових сум, кодуйте їх як рядок ("123456789012345678") для збереження точності.

Який відступ обрати: 2 або 4 пробіли?

Відступ у 2 пробіли є домінантною угодою (Prettier, ESLint за замовчуванням, конвенції npm), він залишається читабельним навіть для дуже вкладених документів. Відступ у 4 пробіли підходить для плоских документів, де вертикальність допомагає читанню. Головне - послідовність в одному проекті. Наш інструмент використовує 4 пробіли за замовчуванням, відповідно до pretty print json_encode(JSON_PRETTY_PRINT) у PHP.

Що робити, якщо мій JSON містить символи Unicode або емодзі?

JSON нативно підтримує UTF-8. Емодзі, наголоси, CJK символи та інші не-латинські шрифти зберігаються як є у відформатованому виводі. Якщо ваш JSON використовує Unicode-екранування (é для é), він залишається дійсним, але форматер не перезаписує його у рідний символ. Для нормалізації, повторно пропустіть через суворий парсер, такий як JSON.parse, а потім JSON.stringify.

Приклад запиту

curl -X POST https://cdrn.fr/api/v1/tools/json-formatter/execute \
  -H "Content-Type: application/json" \
  -d '{"input":"..."}'

Схема вхідних даних

Поле Тип Обов'язкове За замовчуванням
input text

Точки доступу

  • GET https://cdrn.fr/api/v1/tools - перелічує всі доступні інструменти
  • GET https://cdrn.fr/api/v1/tools/json-formatter - отримує схему цього інструменту
  • POST https://cdrn.fr/api/v1/tools/json-formatter/execute - виконує цей інструмент з JSON-payload