Форматування та перевірка JSON
Зробіть JSON зручнішим для читання, перевірте синтаксис або створіть компактну версію. Цей посібник пояснює відступи, сортування ключів і збереження результату.
Спробуйте наданий приклад
Завантажте order-options.json — вигадане замовлення з двома товарами та назвами полів англійською. Об'єкт customer об'єднує ім'я та місто; масив items містить CARD-02, а потім BOX-01. Приклад містить текст у лапках, числові кількості й ціни, логічне значення true та null для порожньої примітки до доставки. Поля навмисно не відсортовані, щоб показати дію сортування.
Покрокова інструкція
- Відкрийте Форматування й перевірка JSON. За допомогою Файл відкрийте наданий order-options.json або вставте його вміст у Ваші дані.
- Установіть Відступ на 2, щоб використовувати два пробіли на рівень. Для першого запуску залиште Сортувати ключі об’єктів без позначки.
- Виберіть Обробити дані. Інструмент перевіряє синтаксис JSON перед показом результату. Якщо він повідомить про помилку, знайдіть її за рядком і стовпцем, виправте вхідні дані та спробуйте ще раз.
- Перегляньте результат. Об'єкт customer і два товари мають бути зрозумілими: по одному полю або елементу списку в рядку. Поки сортування вимкнено, поля зберігають порядок із прикладу.
- Виберіть Завантажити результат, щоб зберегти formatted.json. Також можна скористатися Копіювати текст, щоб перенести результат до іншого редактора.
- Відкрийте завантажений файл у текстовому редакторі та порівняйте його з прикладом за перевірками нижче. Потім спробуйте інші варіанти відступів і сортування, знову вибираючи Обробити дані після кожної зміни.
Приклади до та після
Ці короткі приклади показують об'єкт customer з order-options.json як невеликий документ JSON. Порівняйте те саме ім'я й місто до та після кожного налаштування. Необов'язковий довідковий розділ наприкінці містить повне замовлення.
Зробити компактний JSON зручнішим для читання
Установіть Відступ на 2, залиште Сортувати ключі об’єктів без позначки та виберіть Обробити дані. Результат додає переноси рядків і два пробіли на рівень, зберігаючи початковий порядок полів.
До: компактні вхідні дані
{"customer":{"name":"Zoë","city":"Bergen"}}Після: відступи з двох пробілів
{
"customer": {
"name": "Zoë",
"city": "Bergen"
}
}Відсортувати ключі всередині об'єкта
Залиште Відступ на 2, позначте Сортувати ключі об’єктів і виберіть Обробити дані. Усередині customer поле city тепер стоїть перед name. Обидва значення залишаються незмінними.
До: початковий порядок ключів
{
"customer": {
"name": "Zoë",
"city": "Bergen"
}
}Після: відсортовані ключі об'єкта
{
"customer": {
"city": "Bergen",
"name": "Zoë"
}
}Зробити JSON компактним
Виберіть Мініфікувати у Відступ, залиште Сортувати ключі об’єктів без позначки та виберіть Обробити дані. Пробіли форматування й переноси рядків зникнуть; текст і порядок полів залишаться незмінними.
До: відступи з двох пробілів
{
"customer": {
"name": "Zoë",
"city": "Bergen"
}
}Після: Мініфікувати
{"customer":{"name":"Zoë","city":"Bergen"}}Вибрати відступи
| Варіант | Дія |
|---|---|
| 2 | Використовує два пробіли на кожен рівень вкладеності. Це налаштування основної покрокової інструкції. |
| 4 | Використовує чотири пробіли на кожен рівень вкладеності, виразніше виділяючи вкладені об'єкти й масиви. |
| ↹ | Використовує табуляцію на кожен рівень вкладеності. Її видима ширина залежить від текстового редактора. |
| Мініфікувати | Видаляє пробіли форматування й переноси рядків. Пробіли всередині тексту в лапках залишаються частиною тексту. Виберіть цей варіант для компактного результату, а потім Обробити дані. |
Зміна вхідних даних або налаштування очищає попередній результат. Знову виберіть Обробити дані, щоб створити результат із новими налаштуваннями. Інструмент щоразу читає поле введення й не підставляє туди попередній результат автоматично.
Сортування ключів об'єктів
Залиште Сортувати ключі об’єктів без позначки, щоб зберегти початковий порядок полів кожного об'єкта. Якщо позначити цей параметр, ключі в усьому документі сортуються за текстовим порядком з урахуванням регістру, зокрема в об'єктах усередині масивів. Самі елементи масивів зберігають початкову послідовність.
- Залиште Відступ на 2, позначте Сортувати ключі об’єктів і виберіть Обробити дані.
- Ключі верхнього рівня тепер мають порядок customer, deliveryNote, items, order і paid. Усередині customer поле city стоїть перед name. У кожному товарі price стоїть перед quantity і sku.
- Масив items і далі містить CARD-02, а потім BOX-01. Сортування ключів не сортує товари за sku чи ціною.
Копіювання, завантаження та новий початок
| Варіант | Дія |
|---|---|
| Копіювати текст | Копіює поточний результат як текст. Якщо копіювання недоступне, інструмент виділяє результат, щоб ви могли скопіювати його вручну. |
| Завантажити результат | Зберігає поточний результат як formatted.json. Ця назва використовується для відформатованих, компактних і відсортованих результатів, тому перейменуйте файли, якщо хочете зберегти кілька версій. |
| Друкувати результати | Відкриває діалог друку браузера для тексту результату. |
| Завантажити приклад | Замінює вхідні дані вбудованим прикладом інструмента та обробляє його з поточними налаштуваннями. Цей приклад відрізняється від order-options.json у посібнику. |
| Видалити все | Очищає вхідні дані, вибраний файл і результат. Налаштування відступів і сортування залишаються вибраними. |
Перевірити завантажений JSON
- Відкрийте formatted.json у текстовому редакторі. Перевірте, що замовлення має номер ORD-1042, клієнт — Zoë з Bergen і є два товари.
- Перевірте значення та їхні типи: quantity містить числа 2, а потім 1; ціни зберігають 19.50 і 5.00; paid — логічне значення true без лапок; deliveryNote — значення null без лапок. Імена й коди товарів у лапках залишаються рядками.
- Після перевірки Сортувати ключі об’єктів підтвердьте описаний вище порядок полів і те, що CARD-02 і далі стоїть перед BOX-01 у масиві items.
- Спробуйте Мініфікувати і Обробити дані. Вставте результат назад у Ваші дані, установіть Відступ на 2 і знову виберіть Обробити дані. Порівняйте значення й порядок товарів із початковим прикладом: форматування має їх зберігати.
Запитання й усунення несправностей
Чому інструмент повідомляє про некоректний JSON?
Перевірте вказані рядок і стовпець, а також поле безпосередньо перед цим місцем. Ключі й текст потребують подвійних лапок; поля — ком і двокрапок; квадратні та фігурні дужки мають закриватися. Виправте вхідні дані та знову виберіть Обробити дані. Перевірка стосується синтаксису JSON, тому коректний результат може не містити полів, потрібних вашій програмі.
Чи можна використовувати коментарі або кінцеву кому?
Видаліть коментарі та коми безпосередньо перед закривальною квадратною чи фігурною дужкою. Вони не дозволені в JSON. Форматувальник потребує коректних вхідних даних і не виправляє їх автоматично.
Що означає попередження про повторний ключ?
Повідомлення «Повторні ключі збережено. Деякі програми відкидають повторні ключі.» означає, що ключ трапляється більше одного разу в тому самому об'єкті. Форматувальник зберігає ці записи й попереджає вас. Перегляньте джерело, виберіть потрібне значення та видаліть зайвий запис; інша програма може залишити лише один із них.
Чому файл не відкривається або не обробляється?
Обмеження вхідних даних — 2 MiB, тобто 2 097 152 байти. Локальні текстові файли мають бути в UTF-8. Якщо інструмент повідомляє про надто складні дані, зменште вкладеність або кількість записів. Розділяйте великі дані на менші повні документи JSON, не розрізаючи об'єкт чи масив посередині.
Чому довгі числа змінюються в іншій програмі?
Окремий приклад точності нижче містить 9007199254740993 і 0.10000000000000001. Цей форматувальник точно зберігає текст чисел за будь-якого варіанта відступів і сортування. Відформатуйте exact-numbers.json і порівняйте результат з exact-numbers-formatted.json у текстовому редакторі. Програма, що імпортує результат, усе одно може округлювати числа, тому перевірте підтримку потрібної точності. Код із початковими нулями, як-от 00123, має бути рядком у лапках у JSON.
Чи може форматування відновити вже округлені цифри?
Форматування не може відновити цифри, округлені або видалені до надходження тексту в інструмент. Поверніться до початкового джерела й знову експортуйте повне значення. Якщо це ідентифікатор, а не кількість, використання рядка може допомогти програмам-отримувачам зберегти всі цифри.
Необов'язково: порівняти приклад і еталонні результати
Ці приклади коду й файли для завантаження створено з order-options.json тим самим форматувальником, що на сторінці інструмента. У відформатованому й компактному еталонах сортування ключів вимкнено; відсортований еталон використовує два пробіли відступу з увімкненим сортуванням.
Початковий приклад
{"order":"ORD-1042", "customer": {"name":"Zoë","city":"Bergen"}, "items":[{"sku":"CARD-02", "quantity":2,"price":19.50},{"sku":"BOX-01","quantity":1, "price":5.00}], "paid":true, "deliveryNote":null}
Два пробіли; початковий порядок ключів
{
"order": "ORD-1042",
"customer": {
"name": "Zoë",
"city": "Bergen"
},
"items": [
{
"sku": "CARD-02",
"quantity": 2,
"price": 19.50
},
{
"sku": "BOX-01",
"quantity": 1,
"price": 5.00
}
],
"paid": true,
"deliveryNote": null
}Мініфікувати; початковий порядок ключів
{"order":"ORD-1042","customer":{"name":"Zoë","city":"Bergen"},"items":[{"sku":"CARD-02","quantity":2,"price":19.50},{"sku":"BOX-01","quantity":1,"price":5.00}],"paid":true,"deliveryNote":null}Два пробіли; відсортовані ключі об'єктів
{
"customer": {
"city": "Bergen",
"name": "Zoë"
},
"deliveryNote": null,
"items": [
{
"price": 19.50,
"quantity": 2,
"sku": "CARD-02"
},
{
"price": 5.00,
"quantity": 1,
"sku": "BOX-01"
}
],
"order": "ORD-1042",
"paid": true
}| Еталонний файл | Налаштування | Байти |
|---|---|---|
| order-formatted.json | Два пробіли; початковий порядок ключів | 300 |
| order-minified.json | Мініфікувати; початковий порядок ключів | 193 |
| order-sorted.json | Два пробіли; відсортовані ключі об'єктів | 300 |
Це справжні текстові результати, а не знімки інтерфейсу. Код може переноситися відповідно до ширини екрана. Назви еталонних файлів розрізняють приклади; сам інструмент завантажує кожну версію як formatted.json.