Преобразуйте документы JSON в TOML с настраиваемыми отступами и переключателями pretty-print.
Преобразуйте документы JSON в TOML с настраиваемыми отступами и переключателями pretty-print. Преобразуйте документы JSON в TOML с настраиваемыми отступами и переключателями pretty-print.
Вывод
Справка
Зачем преобразовывать JSON в TOML
JSON повсюду в сети, но TOML - это формат, который на самом деле
использует большинство современных файлов конфигурации (Cargo,
pyproject.toml, GitHub Actions, uv и многие другие). Когда вы
копируете фрагмент JSON из API в файл конфигурации, вам обычно
нужно перевести синтаксис вручную: фигурные скобки становятся
разделами, квадратные скобки - массивами, запятые - переносами
строк, а ключи в кавычках - обычными ключами.
Конвертер автоматизирует этот перевод: вы вставляете ответ API,
копируете вывод TOML и готово.
Полезные возможности
Большинство конвертеров по умолчанию сохраняют порядок объектов
JSON. TOML позволяет переупорядочивать разделы, поэтому опция
«сортировать ключи» помогает, когда нужно стабильное сравнение
между запусками. Управление отступами позволяет соответствовать
гайдлайну стиля проекта (два или четыре пробела).
Для массивов таблиц в TOML конвертер выдаёт встроенную форму
key = [ ... ], когда массив JSON содержит один однородный
объект, и форму с заголовком [[section]] для списков со
смешанными типами или повторяющейся одной схемой. Это единственный
случай, когда преобразование не является полностью механическим.
Советы по работе
Перед фиксацией TOML дважды проверьте, что ключи, которые вы
использовали в JSON, являются допустимыми обычными ключами TOML
(без пробелов, без ведущих цифр, без дефисов в начале). Конвертер
сохраняет имена дословно; он их не переименовывает. После
преобразования вставьте результат в редактор и запустите линтер
проекта, чтобы поймать проблемы стиля, о которых конвертер не
знает.
Практический пример
Представьте, что у вас есть ответ API, который перечисляет флаги
функций вашего проекта, и вы хотите вставить их прямо в блок
pyproject.toml. JSON выглядит как { "name": "beetools",
"features": ["json", "toml"] }. После преобразования TOML
читается как name = "beetools" и features = ["json", "toml"],
и вы можете поместить его в [tool.beetools] без дальнейшей
обработки. Массивы таблиц ([[items]]) получаются из массивов
JSON, элементы которых - объекты с одинаковыми ключами; конвертер
определяет однородную форму и автоматически выдаёт многострочную
форму. Если вместо этого вы видите плоский вывод, значит, ввод
смешивал типы - разделите источник вручную и запустите снова.
Часто задаваемые вопросы
Поддерживает ли конвертер вложенные объекты?
Да. Вложенные объекты JSON становятся вложенными таблицами TOML. Конвертер сохраняет глубину, и очень глубокая вложенность раскрывается в заголовки `[[section.sub]]` соответственно.
Что насчёт массивов примитивов?
Массивы примитивов (числа, строки, логические значения) становятся встроенными массивами TOML. Массивы смешанных типов отвергаются нижележащим парсером, потому что TOML требует однородности массивов.
Сохраняются ли значения JSON null?
В TOML нет литерала null. Конвертер отбрасывает значения `null` и выдаёт предупреждение; если нужно зафиксировать отсутствие, переключитесь на пустую строку или сигнальное значение перед преобразованием.
Почему в выводе нет комментариев из исходного JSON?
JSON не поддерживает комментарии. Если комментарии нужны в TOML, добавьте их вручную после преобразования.
Изменит ли конвертер порядок ключей?
Нет. По умолчанию ключи выводятся в порядке JSON. Включите опцию сортировки, если нужна стабильная алфавитная раскладка для сравнения.
Мой JSON куда-либо отправляется?
Нет. Преобразование происходит полностью в вашем браузере с использованием нативного JSON.parse и встроенной библиотеки smol-toml.