Как пользоваться
- Вставьте объект JSON или попробуйте пример.
- Включите «Пропускать значения null», если в вашем JSON есть ненужные null.
- Скопируйте TOML или скачайте его как файл .toml.
Как это работает
JSON разбирается строго, затем записывается как TOML 1.0 с помощью открытой библиотеки smol-toml. Вложенные объекты становятся [таблицами], массивы объектов — [[массивами таблиц]], а ключи, не являющиеся простыми словами, заключаются в кавычки.
TOML не может выразить всё, что может JSON. Корень документа должен быть таблицей, поэтому JSON-массив или одиночное значение отклоняется. В TOML нет null: по умолчанию сообщается о первом null с указанием пути; вместо этого можно исключить члены объекта со значением null. null внутри массива всегда является ошибкой, так как его удаление изменило бы позиции остальных элементов. Массивы со смешанными типами (например, числа и строки) допустимы в TOML 1.0, но не в более старой версии 0.5, поэтому они учитываются в примечании.
JSON не различает 1 и 1.0, поэтому целые числа записываются как целые числа TOML. Строки, похожие на даты, остаются строками. Обратное направление — TOML в JSON.
Примеры
Настройки приложения
{"server": {"host": "0.0.0.0", "port": 8080}} превращается в таблицу [server] с ключами host и port.
Список обработчиков
"workers": [{"queue": "mail"}, {"queue": "images"}] превращается в два блока [[workers]].
Часто задаваемые вопросы
Почему null не разрешён?
В TOML нет значения null. Не указывайте ключ или используйте значение, например пустую строку, в зависимости от того, что ожидает читающая программа.
Почему массив из чисел и строк показывает примечание?
Массивы со смешанными типами разрешены начиная с TOML 1.0, но инструменты, реализующие TOML 0.5, их отклоняют. Примечание помогает, если целевой инструмент более старый.
Останется ли 1.0 числом с плавающей точкой?
Нет. JSON хранит 1.0 и 1 как одно и то же число, поэтому оно становится целым 1. Укажите 1.5 или измените TOML, если читающей программе нужно число с плавающей точкой.
Конфиденциальность
Конвертация выполняется полностью в вашем браузере. Ваши JSON и TOML не загружаются и не сохраняются.