Перейти к содержимому

JSON5 Formatter

Форматирование JSON5 и JSONC с сохранением комментариев и точным местом ошибки.

Результат
Стиль
Работает в браузере: данные никуда не загружаются.

Как пользоваться

  1. Вставьте JSON5, JSONC или JSON в редактор ввода.
  2. В поле «Результат» выберите «JSON5» или «JSON».
  3. В поле «Стиль» выберите «С отступами» или «Сжатый».
  4. Для стиля «С отступами» задайте «Отступ»: «2 пробела», «4 пробела» или «Табуляция».

Примеры

Настройки VS Code с комментариями

Исходные данные
{
// Настройки рабочего проекта
"editor.tabSize": 4,
"files.autoSave": "onFocusChange",
"files.exclude": {"**/node_modules": true,},
}
Результат
{
    // Настройки рабочего проекта
    "editor.tabSize": 4,
    "files.autoSave": "onFocusChange",
    "files.exclude": {
        "**/node_modules": true,
    },
}

Конфигурация сервиса в строгий JSON

Исходные данные
{
  name: 'Каталог товаров',
  endpoint: 'https://api.example.ru/catalog',
  retryLimit: 0x03,
  threshold: .5,
  timeout: Infinity,
}
Результат
{
  "name": "Каталог товаров",
  "endpoint": "https://api.example.ru/catalog",
  "retryLimit": 3,
  "threshold": 0.5,
  "timeout": null
}

Сжать конфигурацию витрины в одну строку

Исходные данные
{
  // Параметры витрины
  title: 'Магазин «Берёзка»',
  currency: 'RUB',
  cities: ['Москва', 'Казань',],
}
Результат
{title:"Магазин «Берёзка»",currency:"RUB",cities:["Москва","Казань"]}

Что допускает JSON5

ВозможностьПример JSON5Строгий JSON
Комментарии// line, /* block */Не допускается
Запятые в конце[1, 2,][1, 2]
Ключи без кавычек{name: 1}{"name": 1}
Строки в одинарных кавычках'it\'s'"it's"
Многострочные строки'line \↵next'"line next"
Шестнадцатеричные числа0xFF255
Точка в начале/конце, знак плюс.5, 5., +10.5, 5, 1
Infinity и NaNInfinity, -Infinity, NaNНет аналога (null или строка)

Частые вопросы

Как найти ошибку в JSON5?

При некорректном вводе результат остаётся пустым, а список ошибок показывает строку, столбец и фрагмент кода. Нажмите на позицию ошибки, чтобы перейти к ней в редакторе. Инструмент не исправляет ошибки автоматически.

Можно ли использовать в JSON5 значения undefined и None?

undefined, None, True и False не входят в JSON5 и вызывают ошибку. Используйте null, true и false; числа с ведущим нулём, например 01, тоже недопустимы.

Что происходит с повторяющимися ключами?

Оба ключа сохраняются в результате. В примечании указаны позиции повторного и первого вхождения.

Округляются ли большие числа при форматировании?

Большие числа сохраняются точно. Для целых чисел больше 9007199254740991 и десятичных чисел с более чем 17 значащими цифрами в примечаниях появляется пометка: JavaScript JSON.parse округлил бы такое значение.

Отправляется ли содержимое JSON-файла на сервер?

Проверка и форматирование выполняются в браузере; код инструмента не отправляет введённые данные по сети. Ввод не сохраняется, а localStorage хранит настройки инструмента.