Форматирование и проверка 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.