Все руководства

Форматирование и проверка JSON

Сделайте JSON удобнее для чтения, проверьте синтаксис или создайте компактную версию. Это руководство объясняет отступы, сортировку ключей и сохранение результата.

Попробуйте готовый пример

Скачайте order-options.json — вымышленный заказ с двумя товарами и названиями полей на английском языке. Объект customer объединяет имя и город; массив items содержит CARD-02, а затем BOX-01. Пример включает текст в кавычках, числовые количества и цены, логическое значение true и null для пустой заметки о доставке. Поля намеренно не отсортированы, чтобы показать действие сортировки.

Пошаговая инструкция

  1. Откройте Форматирование и проверка JSON. С помощью Файл откройте предоставленный order-options.json или вставьте его содержимое в Ваши данные.
  2. Установите Отступ на 2, чтобы использовать два пробела на уровень. При первом запуске оставьте Сортировать ключи объектов без отметки.
  3. Выберите Обработать данные. Инструмент проверяет синтаксис JSON перед выводом результата. Если он сообщит об ошибке, найдите её по строке и столбцу, исправьте входные данные и повторите попытку.
  4. Прочитайте результат. Объект customer и два товара должны быть понятны: по одному полю или элементу списка в строке. Пока сортировка отключена, поля сохраняют порядок из примера.
  5. Выберите Скачать результат, чтобы сохранить formatted.json. Также можно использовать Копировать текст, чтобы перенести результат в другой редактор.
  6. Откройте скачанный файл в текстовом редакторе и сравните его с примером по проверкам ниже. Затем попробуйте другие варианты отступов и сортировки, выбирая Обработать данные после каждого изменения.

Примеры до и после

Эти короткие примеры показывают объект 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Использует четыре пробела на каждый уровень вложенности, сильнее выделяя вложенные объекты и массивы.
↹Использует табуляцию на каждый уровень вложенности. Её видимая ширина зависит от текстового редактора.
МинифицироватьУдаляет пробелы форматирования и переносы строк. Пробелы внутри текста в кавычках остаются частью текста. Выберите этот вариант для компактного результата, затем Обработать данные.

Изменение входных данных или параметра очищает предыдущий результат. Снова выберите Обработать данные, чтобы создать результат с новыми настройками. Инструмент каждый раз читает поле ввода и не подставляет в него предыдущий результат автоматически.

Сортировка ключей объектов

Оставьте Сортировать ключи объектов без отметки, чтобы сохранить исходный порядок полей каждого объекта. Если отметить этот параметр, ключи во всём документе сортируются в текстовом порядке с учётом регистра, включая объекты внутри массивов. Сами элементы массивов сохраняют исходную последовательность.

  1. Оставьте Отступ на 2, отметьте Сортировать ключи объектов и выберите Обработать данные.
  2. Ключи верхнего уровня теперь имеют порядок customer, deliveryNote, items, order и paid. Внутри customer поле city стоит перед name. В каждом товаре price стоит перед quantity и sku.
  3. Массив 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.

Связанные инструменты

Источники

RFC 8259 · JSON