Конвертер JSON в TOML
Вставьте JSON — получите TOML мгновенно в браузере. Безопасная обработка null, проверка таблицы верхнего уровня, вывод для Cargo.toml. 100% приватно.
Параметры · 2 пробела
Что такое TOML и зачем преобразовывать из JSON?
TOML (Tom's Obvious, Minimal Language) — это формат конфигурационных файлов, созданный, чтобы быть однозначным и легко читаемым и редактируемым человеком. Это стандартный формат конфигурации для экосистемы Rust (Cargo.toml), современной упаковки Python (pyproject.toml), а также инструментов вроде Hugo, Netlify, Poetry и Foundry. JSON — это универсальный машинный формат, который выдают инструменты и API. Преобразование JSON в TOML распространено, когда у вас есть структурированные данные в виде JSON, но в качестве места назначения нужна редактируемая человеком конфигурация TOML — генерация Cargo.toml или pyproject.toml или превращение настроек приложения в формате JSON в читаемый конфигурационный файл.
TOML более структурирован, чем JSON, и этот инструмент превращает эту строгость в подсказки, а не в загадочные сбои:
**1. Требование таблицы верхнего уровня.** Каждый документ TOML — это таблица в корне; голый массив или скаляр не является валидным TOML. Вместо того чтобы выдавать сломанный вывод для ввода с массивом верхнего уровня, этот инструмент обнаруживает это и подсказывает вам точно, как обернуть данные под ключом, поэтому вы всегда получаете валидный TOML или чёткое объяснение.
**2. Безопасная, прозрачная обработка null.** В JSON есть null; в TOML — нет. Большинство конвертеров либо падают, либо тихо отбрасывают данные. Этот инструмент действует явно: ключи объекта со значениями null отбрасываются, а удалённые ключи перечисляются в предупреждении, а null внутри массива — у которого нет валидного представления в TOML — вызывает точную ошибку с указанием пути. Вас никогда не застанут врасплох пропавшие данные.
**3. Идиоматичный вывод TOML.** Вложенные объекты становятся [таблицами], глубоко вложенные объекты становятся точечными таблицами ([tool.ruff]), а массивы объектов становятся массивами таблиц ([[section]]) — форма, которую используют реальные файлы Cargo.toml и pyproject.toml. Преобразование выполняется библиотекой smol-toml без зависимостей, совместимой с TOML 1.0.0.
**4. 100% приватность на стороне браузера.** Ваш JSON — который может содержать учётные данные, токены или детали внутренних сервисов — никогда не покидает браузер. Без загрузки, без сервера, без логирования. Подтвердите это на вкладке «Сеть» в браузере.
Нужно обратное? Используйте Конвертер TOML в JSON. Работаете с другими форматами конфигурации? Попробуйте Конвертер JSON в YAML и Конвертер YAML в JSON или сначала приведите в порядок ввод JSON с помощью Форматировщика JSON. У каждого формата своя ниша: JSON для машинного обмена, TOML для редактируемой человеком конфигурации приложений и инструментов и YAML для глубоко вложенных инфраструктурных манифестов. Этот конвертер позволяет перейти от JSON к TOML без единой строки кода.
// Convert JSON to TOML in Node.js using the smol-toml library
import { stringify } from 'smol-toml';
const data = JSON.parse(`{
"package": { "name": "my-app", "version": "1.0.0" },
"dependencies": { "serde": { "version": "1.0" } }
}`);
// The top-level value must be an object; null values on objects are dropped.
const toml = stringify(data);
console.log(toml);
// [package]
// name = "my-app"
// version = "1.0.0"
//
// [dependencies.serde]
// version = "1.0" Ключевые возможности
Живое преобразование
Вывод TOML обновляется мгновенно по мере ввода или вставки JSON — кнопка «Конвертировать» не нужна. Большой ввод (>200 КБ) автоматически переключается в ручной режим, чтобы браузер оставался отзывчивым.
Подсказки о таблице верхнего уровня
Документы TOML должны быть таблицей в корне. Если верхний уровень вашего JSON — массив или скаляр, инструмент подскажет вам точно, как обернуть его под ключом — без сломанного вывода, без догадок.
Безопасная обработка null
В TOML нет null. Ключи объекта со значениями null отбрасываются и перечисляются в предупреждении; null внутри массива вызывает точную ошибку с указанием пути. Вы всегда знаете, что случилось с вашими данными.
Идиоматичный вывод TOML
Вложенные объекты становятся [таблицами], глубоко вложенные объекты становятся точечными таблицами ([tool.ruff]), а массивы объектов становятся массивами таблиц ([[section]]) — форма, которую используют реальные Cargo.toml и pyproject.toml.
Учёт float и целых чисел
TOML разделяет целые числа и числа с плавающей точкой, поэтому число вроде 1.0 записывается как целое 1. Инструмент предупреждает вас, когда это приведение меняет тип значения, чтобы сюрпризы при обратном преобразовании были видны.
100% приватность на стороне браузера
Весь разбор выполняется локально в вашем браузере. Ваш JSON — включая учётные данные, токены и детали внутренних сервисов — никогда не загружается, не сохраняется и не логируется.
Примеры
Исходник Cargo.toml
{
"package": {
"name": "my-app",
"version": "1.0.0",
"edition": "2021"
},
"dependencies": {
"serde": { "version": "1.0", "features": ["derive"] },
"tokio": { "version": "1", "features": ["full"] }
}
} Сгенерируйте Rust Cargo.toml из JSON — вложенные объекты становятся [таблицами], а встроенные объекты — встроенными таблицами, ровно как ожидает Cargo.
Исходник pyproject.toml
{
"build-system": {
"requires": ["hatchling"],
"build-backend": "hatchling.build"
},
"project": {
"name": "my-package",
"version": "0.3.1",
"requires-python": ">=3.10",
"dependencies": ["requests>=2.31", "pydantic>=2.0"]
}
} Сгенерируйте pyproject.toml формата PEP 621 из метаданных проекта JSON — удобно, когда инструмент или API выдаёт JSON, который вам нужен в форме TOML.
Настройки приложения
{
"title": "My Service",
"debug": false,
"port": 8080,
"database": {
"host": "localhost",
"port": 5432,
"pool_size": 10
},
"features": ["auth", "metrics", "tracing"]
} Преобразуйте плоский объект настроек приложения в TOML — скаляры верхнего уровня остаются вверху, а вложенный объект database становится таблицей [database].
Серверы (массив таблиц)
{
"servers": [
{ "name": "alpha", "ip": "10.0.0.1", "ports": [8001, 8002] },
{ "name": "beta", "ip": "10.0.0.2", "ports": [9001] }
]
} Массив объектов становится массивом таблиц ([[servers]]) в TOML — идиоматичный способ выразить повторяющиеся секции.
Исходник конфигурации Netlify
{
"build": {
"command": "npm run build",
"publish": "dist",
"environment": { "NODE_VERSION": "20" }
},
"redirects": [
{ "from": "/old", "to": "/new", "status": 301, "force": true }
]
} Превратите JSON-конфигурацию развёртывания в netlify.toml с вложенными таблицами [build] и [build.environment] и массивом таблиц [[redirects]].
Конфигурация со структурой из точек
{
"tool": {
"ruff": { "line-length": 100, "target-version": "py310" },
"black": { "line-length": 100 }
}
} Глубоко вложенные объекты JSON становятся точечными таблицами TOML вроде [tool.ruff] и [tool.black] — форма, которую ожидают инструменты pyproject.toml.
Как использовать
- 1
Вставьте свой JSON
Введите или вставьте свой JSON в поле ввода выше. Также можно нажать «Загрузить пример», чтобы попробовать исходник Cargo.toml, исходник pyproject.toml или объект настроек приложения.
- 2
Смотрите живой вывод TOML
TOML появляется мгновенно в панели вывода. Если у вашего JSON массив верхнего уровня или значения null, инструмент точно объяснит, что делать, вместо того чтобы выдавать сломанный вывод.
- 3
Копируйте или скачивайте
Нажмите «Копировать», чтобы поместить TOML в буфер обмена, или «Скачать», чтобы сохранить как файл .toml, готовый для Cargo, Poetry, Hugo, Netlify или любого инструмента, читающего TOML.
Частые подводные камни преобразования JSON в TOML
Массив или скаляр верхнего уровня
Документы TOML должны быть таблицей (объектом) в корне. JSON-массив или одиночное значение не может быть документом TOML. Оберните его под ключом, чтобы преобразовать.
[1, 2, 3]
{ "items": [1, 2, 3] } Значения null в объектах
В TOML нет типа null, поэтому ключ объекта со значением null отбрасывается при преобразовании. Инструмент предупреждает вас, какие ключи были удалены. Если ключ нужно сохранить, дайте ему реальное значение или пустую строку.
{ "name": "a", "nickname": null } { "name": "a", "nickname": "" } Null внутри массива
Массив TOML не может содержать null или пробел, поэтому JSON вроде [1, null, 3] не имеет валидного вывода TOML. Удалите null или замените его реальным значением перед преобразованием.
{ "ports": [8001, null, 8003] } { "ports": [8001, 8003] } Неверный синтаксис JSON
Сначала ввод должен быть валидным JSON. Замыкающие запятые, одинарные кавычки и ключи без кавычек — частые ошибки, скопированные из JavaScript, которые не являются валидным JSON и должны быть исправлены перед преобразованием.
{ 'name': 'a', 'active': true, } { "name": "a", "active": true } Float с нулевой дробью становится целым
TOML записывает число с плавающей точкой с нулевой дробной частью (1.0) как целое 1, меняя его тип при обратном преобразовании. Инструмент предупреждает вас. Если значение концептуально целое, это нормально; если оно должно оставаться float, TOML не может сохранить это для целых чисел.
{ "ratio": 1.0 } → ratio = 1 { "ratio": 1.5 } → ratio = 1.5 Смешивание объекта и массива под одним ключом
Ключ JSON должен быть последовательно объектом или массивом, чтобы отобразиться в таблицу или массив таблиц. Несогласованные формы в наборе данных могут привести к запутанному TOML — сначала нормализуйте структуру.
{ "server": { "a": 1 }, "server": [1] } { "server": { "a": 1 }, "servers": [1] } Частые сценарии использования
- Генерация Cargo.toml
- Превратите структурированный JSON — от инструмента-скаффолдера, API или скрипта — в валидный Rust Cargo.toml с автоматически создаваемыми вложенными таблицами [dependencies] и встроенными таблицами.
- Генерация pyproject.toml
- Преобразуйте метаданные проекта JSON в pyproject.toml формата PEP 621, включая точечные таблицы [tool.*], чтобы инструменты, выдающие JSON, могли создавать конфигурацию упаковки Python.
- Редактируемая человеком конфигурация из JSON
- Превратите настройки приложения в формате JSON в читаемый конфигурационный файл TOML, который люди могут комфортно редактировать, добавляя комментарии вручную позже.
- Генерация конфигурации развёртывания
- Создавайте netlify.toml, foundry.toml или похожие конфигурации платформ из JSON, превращая вложенные объекты и массивы объектов в таблицы и массивы таблиц, которые ожидают эти инструменты.
- Миграция формата конфигурации
- Перенесите конфигурацию из системы на основе JSON в систему на основе TOML, используя этот конвертер как мост, а предупреждения о null и верхнем уровне — чтобы поймать всё, что не отобразится.
- Прототипирование структуры TOML
- Набросайте конфигурацию как JSON — формат, который большинство разработчиков набирают свободно — затем преобразуйте в TOML, чтобы увидеть идиоматичную раскладку таблиц и массивов таблиц перед фиксацией в репозитории.
Технические детали
- Разбор JSON по RFC 8259
- Ввод JSON разбирается нативным JSON.parse() браузера, полностью совместимым с RFC 8259. Перед сериализацией инструмент проверяет, что значение верхнего уровня — объект, и сканирует значения null, чтобы предупредить об удалённых ключах объекта или отклонить null внутри массива с точным путём.
- Вывод TOML 1.0.0 через smol-toml
- TOML генерируется библиотекой smol-toml — сериализатором без зависимостей, полностью совместимым с TOML 1.0.0. Вложенные объекты становятся таблицами, глубоко вложенные объекты становятся точечными таблицами, а массивы объектов становятся массивами таблиц. Числа с плавающей точкой с нулевой дробной частью записываются как целые по правилам TOML, с предупреждением.
- 100% на стороне браузера — без загрузки, без сервера
- Вся обработка происходит в движке JavaScript вашего браузера. Данные не передаются ни в какой момент. Ввод больше 200 КБ переключается с живого в ручной режим (явное нажатие «Конвертировать»), чтобы интерфейс оставался отзывчивым.
Лучшие практики
- Оборачивайте массивы верхнего уровня под ключом
- Если ваши данные естественно являются JSON-массивом, оберните их в объект с описательным ключом ({ "items": [...] }) перед преобразованием. Документы TOML должны быть таблицей в корне, и ключ даёт вашему массиву понятное имя в выводе.
- Решите, что должны означать значения null
- Перед преобразованием решите, должно ли поле null исчезнуть (отбросить ключ) или нести значение. TOML отбросит объектные null и отклонит массивные null, поэтому разрешение их в вашем JSON заранее даёт предсказуемый, полный вывод.
- Используйте вложенные объекты для группировки
- Группируйте связанные настройки во вложенные объекты в вашем JSON — они становятся чистыми [таблицами] и точечными таблицами в TOML, что гораздо читабельнее плоского списка ключей и соответствует тому, как организованы конфигурации Cargo и pyproject.
- Сначала проверяйте свой JSON
- Если ваш JSON написан вручную или получен из ненадёжного источника, проверьте его нашим Форматировщиком JSON, чтобы поймать замыкающие запятые и ошибки кавычек перед преобразованием в TOML.
- Добавляйте комментарии после преобразования
- В JSON нет комментариев, поэтому ни один не переносится. Поскольку TOML поддерживает комментарии с #, добавьте документацию в сгенерированный TOML вручную — одна из главных причин переносить редактируемую человеком конфигурацию в TOML.
Часто задаваемые вопросы
Как преобразовать JSON в TOML онлайн?
Что такое TOML и зачем преобразовывать в него JSON?
Почему верхний уровень моего JSON должен быть объектом?
Что происходит со значениями null при преобразовании JSON в TOML?
Как вложенные объекты и массивы преобразуются в TOML?
Что происходит с числами с плавающей точкой вроде 1.0?
Отправляются ли мои данные JSON на какой-либо сервер?
Можно ли преобразовать TOML обратно в JSON?
Как преобразовать JSON в TOML в командной строке?
Как преобразовать JSON в TOML в Python, Rust или Node.js?
Сохраняет ли конвертер порядок ключей?
Есть ли ограничение на размер файла для ввода JSON?
Похожие инструменты
Все инструменты →Base64 декодер и кодировщик
Кодирование и форматирование
Декодирование и кодирование Base64 онлайн бесплатно. Преобразование в реальном времени с полной поддержкой UTF-8 и эмодзи. Полная приватность — работает в браузере. Без регистрации.
Конвертер Base64 в изображение
Кодирование и форматирование
Декодируйте строку Base64 или data URI обратно в изображение прямо в браузере. Предпросмотр, размеры и MIME, затем скачивание как PNG, JPG, GIF, SVG. Без загрузки.
Конвертер CSV в JSON
Кодирование и форматирование
Конвертируйте CSV в JSON в браузере. RFC 4180, определение типов, заголовок, безопасность больших целых. 100% приватно, без загрузки.
Конвертер .env в JSON
Кодирование и форматирование
Вставьте файл .env — получите JSON мгновенно. Пароли БД, API-ключи и токены не покидают браузер: 100% приватно, без загрузки, парсер dotenv.
Бесплатный HTML-декодировщик сущностей — unescape HTML
Кодирование и форматирование
Декодируйте HTML-сущности и снимайте экранирование HTML онлайн — бесплатно, без регистрации, 100% в браузере. Преобразует именованные, десятичные и hex-ссылки обратно в символы; данные не загружаются.
Бесплатный HTML-кодировщик сущностей — экранирование HTML
Кодирование и форматирование
Кодируйте HTML-сущности и экранируйте спецсимволы (< > & " ') онлайн — бесплатно, без регистрации, 100% в браузере. Именованный, десятичный или шестнадцатеричный вывод; данные не загружаются.