Skip to content

Конвертер JSON в TOML

Вставьте JSON — получите TOML мгновенно в браузере. Безопасная обработка null, проверка таблицы верхнего уровня, вывод для Cargo.toml. 100% приватно.

Без отслеживания Работает в браузере Бесплатно
0 симв.
TOML Вывод
0 строк
Проверено на соответствие спецификации TOML 1.0.0, соблюдение правила таблицы верхнего уровня и прозрачную обработку null — Команда инженеров Go-Tools · Jul 2, 2026

Что такое 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. 1

    Вставьте свой JSON

    Введите или вставьте свой JSON в поле ввода выше. Также можно нажать «Загрузить пример», чтобы попробовать исходник Cargo.toml, исходник pyproject.toml или объект настроек приложения.

  2. 2

    Смотрите живой вывод TOML

    TOML появляется мгновенно в панели вывода. Если у вашего JSON массив верхнего уровня или значения null, инструмент точно объяснит, что делать, вместо того чтобы выдавать сломанный вывод.

  3. 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 онлайн?
Вставьте свой JSON в поле ввода выше. Инструмент разбирает его и мгновенно выдаёт TOML прямо в браузере — нажимать кнопку не нужно. Когда TOML появится в области вывода, нажмите «Копировать», чтобы поместить его в буфер обмена, или «Скачать», чтобы сохранить как файл .toml. Всё работает локально, поэтому ваш JSON никогда не покидает устройство. Два момента стоит знать перед началом: верхний уровень вашего JSON должен быть объектом (не массивом), а у значений null нет эквивалента в TOML — инструмент чётко пояснит оба случая, если они возникнут.
Что такое TOML и зачем преобразовывать в него JSON?
TOML (Tom's Obvious, Minimal Language) — это формат конфигурации, созданный так, чтобы его было легко читать и писать человеку, с однозначной семантикой. Это формат конфигурации для Cargo в Rust, pyproject.toml в Python, а также Hugo, Netlify, Poetry и других. JSON преобразуют в TOML, когда инструмент или API выдаёт вам JSON, а место назначения ожидает TOML — например, при генерации Cargo.toml или pyproject.toml из структурированных данных или при превращении настроек приложения в формате JSON в редактируемый человеком конфигурационный файл TOML.
Почему верхний уровень моего JSON должен быть объектом?
Документы TOML всегда представляют собой таблицу (набор пар «ключ-значение») в корне — спецификация не допускает голый массив, строку или число на верхнем уровне. Поэтому JSON-массив вроде [1, 2, 3] или одиночное значение вроде 42 нельзя преобразовать напрямую. Решение — обернуть его под ключом: { "items": [1, 2, 3] } чисто преобразуется в items = [1, 2, 3]. Этот инструмент обнаруживает необъектный верхний уровень и подсказывает вам точно, как его обернуть, вместо того чтобы выдавать сломанный вывод.
Что происходит со значениями null при преобразовании JSON в TOML?
В TOML нет типа null, поэтому null не может быть представлен. Этот инструмент обрабатывает его безопасно и прозрачно двумя способами. Когда null появляется как значение объекта, TOML просто опускает этот ключ — и инструмент показывает предупреждение с точным списком удалённых ключей, поэтому тихая потеря данных вас никогда не застанет врасплох. Когда null появляется внутри массива, валидного вывода TOML вообще не существует (массив не может содержать пробел), поэтому инструмент сообщает об ошибке с указанием точного пути к нарушающему null. В любом случае вы точно знаете, что и где произошло.
Как вложенные объекты и массивы преобразуются в TOML?
Вложенный объект JSON становится таблицей TOML: { "owner": { "name": "Tom" } } становится [owner] с name = "Tom". Глубоко вложенные объекты становятся точечными таблицами вроде [tool.ruff]. Массив объектов становится массивом таблиц, записанным двойными скобками ([[servers]]), — идиоматичный способ TOML выразить повторяющиеся секции. Массивы скаляров остаются встроенными как массивы (ports = [8001, 8002]). Вывод следует спецификации TOML 1.0.0.
Что происходит с числами с плавающей точкой вроде 1.0?
TOML различает целые числа и числа с плавающей точкой, и число с плавающей точкой, у которого дробная часть равна нулю (как 1.0), записывается как целое число 1. Поэтому { "version": 1.0 } становится version = 1. Инструмент показывает небольшое предупреждение, когда происходит такое приведение, потому что оно меняет тип значения при обратном преобразовании. Если вам нужно, чтобы значение оставалось числом с плавающей точкой, это различие не может быть сохранено через TOML для целых чисел — подумайте, действительно ли вам нужно целое число.
Отправляются ли мои данные JSON на какой-либо сервер?
Нет. Весь разбор и преобразование происходят полностью в вашем браузере с помощью JavaScript. Ваш JSON никогда не загружается, не сохраняется и не логируется. Это делает инструмент безопасным для конфигураций, содержащих ключи API, учётные данные баз данных или детали внутренних сервисов. Вы можете убедиться в этом, открыв вкладку «Сеть» в браузере — вставка JSON не вызывает ни одного сетевого запроса.
Можно ли преобразовать TOML обратно в JSON?
Да. Используйте парный Конвертер TOML в JSON для обратного направления или нажмите кнопку «Поменять направление» вверху этого инструмента, чтобы поменять ввод и вывод местами. У преобразования TOML в JSON меньше ограничений — оно принимает любой валидный TOML — поэтому круговое преобразование JSON → TOML → JSON надёжно, если в вашем JSON изначально не было значений null или массива верхнего уровня.
Как преобразовать JSON в TOML в командной строке?
Популярный вариант — инструмент 'yj' на Go (yj -jt читает JSON и пишет TOML). В Python можно использовать сторонний пакет 'tomli-w': import json, tomli_w; tomli_w.dump(json.load(open('config.json')), open('config.toml','wb')). В Node.js: import { stringify } from 'smol-toml'; const toml = stringify(JSON.parse(text)) — та же библиотека, что использует этот инструмент. Для быстрого разового преобразования без установки чего-либо этот браузерный инструмент — самый быстрый путь.
Как преобразовать JSON в TOML в Python, Rust или Node.js?
В Python: import json, tomli_w; tomli_w.dump(json.load(open('config.json')), open('config.toml','wb')). В Rust: используйте serde_json и toml — let value: serde_json::Value = serde_json::from_str(&text)?; let toml = toml::to_string_pretty(&value)?. В Node.js: import { stringify } from 'smol-toml'; const toml = stringify(JSON.parse(text)) — именно этот подход использует данный инструмент. Помните, что во всех этих случаях значение верхнего уровня должно быть объектом.
Сохраняет ли конвертер порядок ключей?
Ключи внутри таблицы сохраняются в исходном порядке, но структура TOML требует, чтобы все обычные пары «ключ-значение» таблицы шли перед любыми заголовками дочерних таблиц. Поэтому скаляры верхнего уровня выводятся первыми, затем таблицы и массивы таблиц — конвертер меняет порядок только там, где этого требует грамматика TOML. Данные идентичны; сдвигается лишь текстовый порядок секций-таблиц, чтобы получить валидный TOML.
Есть ли ограничение на размер файла для ввода JSON?
Жёсткого ограничения нет, но ввод больше 200 КБ переключается с живого преобразования в ручной режим: появляется кнопка «Конвертировать», и преобразование выполняется только по нажатию, сохраняя браузер отзывчивым. Типичные конфигурационные полезные нагрузки преобразуются менее чем за 50 миллисекунд.

Похожие инструменты

Все инструменты →

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% в браузере. Именованный, десятичный или шестнадцатеричный вывод; данные не загружаются.