Skip to content

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

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

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

Что такое TOML и зачем преобразовывать в JSON?

TOML (Tom's Obvious, Minimal Language) — это формат конфигурационных файлов, созданный Томом Престон-Вернером, чтобы быть однозначным, легко читаемым человеком и тривиально отображаемым в хеш-таблицу. Он стал форматом конфигурации по умолчанию для экосистемы Rust (Cargo.toml), современной упаковки Python (pyproject.toml, стандартизирован в PEP 518 и PEP 621), а также инструментов вроде Hugo, Netlify, Poetry и Foundry. JSON, напротив, — это универсальный формат машинного обмена: его разбирает каждый язык, на нём говорит каждый API. Поэтому преобразование TOML в JSON — распространённая задача: вы пишете конфигурацию в читаемом TOML, затем преобразуете в JSON, чтобы передать программе, изучить инструментами JSON или сравнить в конвейере.

У этого инструмента есть несколько отличий, важных для корректности:

**1. Точность дата-время.** У TOML есть полноценные типы даты и времени — дата-время со смещением, локальное дата-время, локальная дата и локальное время — которых у JSON нет вовсе. Наивные конвертеры превращают их все в метки времени ISO, поэтому локальная дата вроде 1979-05-27 становится 1979-05-27T00:00:00Z, незаметно выдумывая время и часовой пояс. Этот инструмент сохраняет точный вид TOML: локальные даты остаются календарными датами, локальное время остаётся временем, и только дата-время со смещением несут часовой пояс. Это сохраняет честность ваших данных и делает обратные преобразования без потерь.

**2. Полная поддержка TOML 1.0.0.** Вложенные таблицы, ключи с точками, встроенные таблицы и массивы таблиц ([[section]]) — всё разбирается корректно согласно спецификации TOML 1.0.0 с помощью библиотеки smol-toml без зависимостей. Реальные файлы Cargo.toml и pyproject.toml со смешанными встроенными и обычными таблицами преобразуются точно так, как требует спецификация.

**3. Честная обработка больших целых чисел.** Целые числа TOML 64-битные, но браузерный JavaScript может точно хранить целые числа только до 2^53 - 1. Вместо тихой порчи большого значения или сбоя этот инструмент преобразует его в ближайшее число JSON и предупреждает вас, чтобы вы могли сохранить значение как строку. Эта честность в отношении фундаментального ограничения браузера — то, что большинство конвертеров обходит стороной.

**4. 100% приватность на стороне браузера.** Ваш TOML — который может содержать токены реестра, внутренние источники пакетов или секреты развёртывания — никогда не покидает браузер. Без загрузки, без сервера, без логирования. Вы можете подтвердить это на вкладке «Сеть» в браузере.

Нужно обратное? Используйте Конвертер JSON в TOML. Преобразуете между другими форматами конфигурации? Попробуйте Конвертер JSON в YAML и Конвертер YAML в JSON или сначала проверьте и красиво отформатируйте вывод JSON с помощью Форматировщика JSON. У TOML, JSON и YAML своё место: TOML для редактируемой человеком конфигурации приложений, JSON для машинного обмена и YAML для глубоко вложенных инфраструктурных манифестов. Этот конвертер позволяет переходить между первыми двумя без единой строки кода.

// Convert TOML to JSON in Node.js using the smol-toml library
import { parse } from 'smol-toml';

const toml = `
[package]
name = "my-app"
version = "1.0.0"

[dependencies]
serde = { version = "1.0", features = ["derive"] }
`;

const data = parse(toml);
const json = JSON.stringify(data, null, 2);

console.log(json);
// {
//   "package": { "name": "my-app", "version": "1.0.0" },
//   "dependencies": {
//     "serde": { "version": "1.0", "features": ["derive"] }
//   }
// }

Ключевые возможности

Живое преобразование

Вывод JSON обновляется мгновенно по мере ввода или вставки TOML — кнопка «Конвертировать» не нужна. Большой ввод (>200 КБ) автоматически переключается в ручной режим, чтобы браузер оставался отзывчивым.

Точность дата-время

Дата-время со смещением, локальные дата-время, локальные даты и локальное время TOML преобразуются в строки JSON, сохраняющие исходный вид — без выдуманных меток времени на полночь, поэтому обратные преобразования остаются без потерь.

Полная поддержка TOML 1.0.0

Вложенные таблицы, ключи с точками, встроенные таблицы и массивы таблиц ([[section]]) — всё разбирается корректно движком smol-toml без зависимостей в соответствии со спецификацией TOML 1.0.0.

Готовность к Cargo.toml и pyproject.toml

Оптимизирован для самых распространённых реальных файлов TOML — манифестов Rust и конфигураций упаковки Python — включая встроенные таблицы и массивы таблиц. Загрузите пример, чтобы увидеть точную структуру JSON.

Честные предупреждения о больших целых числах

Целые числа за пределами безопасного диапазона JavaScript (2^53) нельзя точно представить в JSON — инструмент преобразует их в ближайшее число и предупреждает вас, вместо того чтобы тихо испортить значение.

100% приватность на стороне браузера

Весь разбор выполняется локально в вашем браузере. Ваш TOML — включая токены реестра, приватные источники пакетов и секреты развёртывания — никогда не загружается, не сохраняется и не логируется.

Примеры

Cargo.toml (Rust)

[package]
name = "my-app"
version = "1.0.0"
edition = "2021"
authors = ["Jane Doe <jane@example.com>"]

[dependencies]
serde = { version = "1.0", features = ["derive"] }
tokio = { version = "1", features = ["full"] }

[dev-dependencies]
criterion = "0.5"

[[bin]]
name = "my-app"
path = "src/main.rs"

Преобразуйте манифест Rust Cargo.toml в JSON — удобно для инструментов, панелей зависимостей или передачи метаданных cargo в скрипты, ожидающие JSON.

pyproject.toml (Python)

[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"
]

[project.optional-dependencies]
dev = ["pytest>=8.0", "ruff>=0.4"]

[tool.ruff]
line-length = 100

Преобразуйте pyproject.toml формата PEP 621 в JSON, чтобы программно изучить метаданные проекта, зависимости и конфигурацию инструментов.

netlify.toml

[build]
command = "npm run build"
publish = "dist"

[build.environment]
NODE_VERSION = "20"

[[redirects]]
from = "/old-path"
to = "/new-path"
status = 301
force = true

[[headers]]
for = "/*"

[headers.values]
X-Frame-Options = "DENY"

Преобразуйте конфигурацию сборки Netlify в JSON, чтобы проверить редиректы и заголовки или сгенерировать эквивалентную конфигурацию для другой платформы.

config.toml Hugo

baseURL = "https://example.org"
languageCode = "en-us"
title = "My Hugo Site"
theme = "ananke"

[params]
description = "A static site built with Hugo"
mainSections = ["posts", "docs"]

[[menu.main]]
name = "Blog"
url = "/posts/"
weight = 1

[[menu.main]]
name = "About"
url = "/about/"
weight = 2

Преобразуйте config.toml сайта Hugo в JSON, чтобы перенести настройки, сравнить конфигурацию или управлять интерфейсом настроек.

rustfmt.toml

edition = "2021"
max_width = 100
hard_tabs = false
tab_spaces = 4
newline_style = "Unix"
use_small_heuristics = "Default"
reorder_imports = true
reorder_modules = true

Преобразуйте плоский rustfmt.toml в JSON — хороший пример того, как пары «ключ-значение» верхнего уровня (без таблиц) напрямую отображаются в объект JSON.

Конфигурация приложения с датами и массивами таблиц

title = "Deployment Log"
last_deployed = 1979-05-27T07:32:00Z
release_date = 1979-05-27
maintenance_window = 02:00:00

[[servers]]
name = "alpha"
ip = "10.0.0.1"
ports = [8001, 8002]

[[servers]]
name = "beta"
ip = "10.0.0.2"
ports = [9001]

Демонстрирует, как нативные дата-время TOML (дата-время со смещением, локальная дата, локальное время) и массивы таблиц чисто преобразуются в строки и массивы JSON.

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

  1. 1

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

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

  2. 2

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

    JSON появляется мгновенно в панели вывода. Настройте параметр «Отступ» (2 или 4 пробела) под ваш целевой формат. Даты, таблицы и массивы таблиц обрабатываются автоматически.

  3. 3

    Копируйте или скачивайте

    Нажмите «Копировать», чтобы поместить JSON в буфер обмена, или «Скачать», чтобы сохранить как файл .json, готовый для вашей программы, API или инструментов.

Частые подводные камни TOML

Строковые значения без кавычек

В TOML строковые значения должны быть в кавычках. Голое слово справа от знака равенства допустимо только для булевых значений (true/false), чисел, дат или как часть массива. Заключайте строки в двойные или одинарные кавычки.

✗ Неверно
name = my-app
✓ Верно
name = "my-app"

Дублирующиеся ключи

TOML запрещает определять один и тот же ключ дважды в одной таблице и запрещает переопределять уже определённую таблицу. Это частая ошибка при объединении фрагментов конфигурации. Каждый ключ и таблица должны быть уникальны.

✗ Неверно
name = "a"
name = "b"
✓ Верно
name = "a"
alt_name = "b"

Неверный формат дата-время

Дата-время TOML следуют RFC 3339. Дате нужен полный 4-значный год, 2-значный месяц и 2-значный день; дата-времени нужен разделитель T (или пробел). Некорректные даты не разбираются.

✗ Неверно
released = 2026-7-2
✓ Верно
released = 2026-07-02

Отсутствует закрывающая скобка

Массивы, встроенные таблицы и заголовки таблиц должны быть закрыты. Незакрытая [ или { вызывает ошибку разбора с указанием строки и столбца, где обнаружена проблема.

✗ Неверно
ports = [8001, 8002
✓ Верно
ports = [8001, 8002]

Целое число за пределами безопасного диапазона

Целые числа TOML 64-битные, но числа JSON в браузере ограничены 2^53 - 1. Значения за этим пределом округляются при преобразовании, и показывается предупреждение. Храните очень большие целые числа как строки в кавычках, чтобы сохранить их точность.

✗ Неверно
snowflake = 1420070400000000000
✓ Верно
snowflake = "1420070400000000000"

Переопределение таблицы

После того как таблица вроде [servers] определена, вы не можете открыть её снова с тем же заголовком. Чтобы иметь несколько записей, используйте массив таблиц ([[servers]]), который становится массивом объектов JSON.

✗ Неверно
[servers]
name = "a"
[servers]
name = "b"
✓ Верно
[[servers]]
name = "a"
[[servers]]
name = "b"

Частые сценарии использования

Метаданные Rust Cargo
Преобразуйте Cargo.toml в JSON, чтобы строить панели зависимостей, проверять версии и фичи крейтов или передавать данные манифеста в скрипты и CI, ожидающие JSON вместо TOML.
Конфигурация проекта Python
Преобразуйте pyproject.toml в JSON, чтобы изучить метаданные проекта PEP 621, извлечь списки зависимостей или управлять инструментами, программно читающими конфигурацию упаковки.
Проверка конфигурации развёртывания
Преобразуйте netlify.toml, foundry.toml или другие конфигурации платформ в JSON, чтобы проверить редиректы, заголовки и настройки сборки или сгенерировать эквивалентную конфигурацию для другой платформы.
Миграция формата конфигурации
Преобразуйте конфигурацию приложения TOML в JSON при переходе на систему, предпочитающую JSON, или как промежуточный шаг перед дальнейшей обработкой инструментами JSON вроде jq.
Настройки статического сайта
Преобразуйте config.toml Hugo в JSON, чтобы перенести настройки сайта, сравнить конфигурацию разных сред или построить интерфейс настроек на основе JSON.
Ввод для API и скриптов
Превратите написанный человеком TOML в JSON, который REST API, бессерверная функция или скрипт автоматизации могут использовать напрямую, соединяя читаемую конфигурацию и машинный ввод.

Технические детали

Разбор TOML 1.0.0 через smol-toml
TOML разбирается библиотекой smol-toml — парсером без зависимостей, полностью совместимым с TOML 1.0.0. Он корректно обрабатывает вложенные таблицы, ключи с точками, встроенные таблицы, массивы таблиц, многострочные строки и все четыре типа дата-время, а также сообщает об ошибках разбора с указанием позиций строки и столбца.
Обработка дата-время без потерь и безопасных целых чисел
Дата-время TOML сериализуются в строки JSON, сохраняющие их точный вид (дата-время со смещением, локальное дата-время, локальная дата, локальное время). Целые числа за пределами безопасного диапазона JavaScript (2^53 - 1) при разборе повышаются до BigInt, затем преобразуются в ближайшее число JSON с предупреждением о точности, поэтому валидный TOML всегда преобразуется.
100% на стороне браузера — без загрузки, без сервера
Вся обработка происходит в движке JavaScript вашего браузера. Данные не передаются ни в какой момент. Ввод больше 200 КБ переключается с живого в ручной режим (явное нажатие «Конвертировать»), чтобы интерфейс оставался отзывчивым.

Лучшие практики

Храните очень большие целые числа как строки
Если в вашем TOML есть целые числа за пределами 2^53 - 1 (Snowflake ID, наносекундные метки времени, большие счётчики), заключите их в кавычки как строки перед преобразованием. Числа JSON в браузере не могут хранить их точно, и инструмент предупредит вас, когда придётся округлять.
Предпочитайте отступ в 2 пробела для вывода JSON
Отступ в два пробела — наиболее широко используемое соглашение для JSON, дающее чистый, читаемый вывод, который хорошо работает с большинством форматировщиков и инструментов сравнения. Оставьте отступ в 4 пробела для случаев, когда этого требует руководство по стилю.
Проверяйте вывод JSON перед использованием
После преобразования, если вы планируете вручную редактировать JSON или передавать его туда, где требования строгие, пропустите его через наш Форматировщик JSON, чтобы убедиться, что он валиден и единообразно отформатирован.
Храните комментарии TOML отдельно
В JSON нет синтаксиса комментариев, поэтому комментарии TOML с # удаляются при преобразовании. Если комментарии — важная документация, храните исходный TOML в системе контроля версий рядом со сгенерированным JSON.
Используйте массивы таблиц для повторяющихся секций
Когда у вас несколько похожих секций (серверы, редиректы, бинарники), пишите их как массивы таблиц ([[section]]), а не повторяйте [section]. Они преобразуются в чистый массив объектов JSON вместо того, чтобы вызывать ошибку дублирующейся таблицы.

Часто задаваемые вопросы

Как преобразовать TOML в JSON онлайн?
Вставьте свой TOML в поле ввода выше. Инструмент разбирает его и мгновенно выдаёт JSON прямо в браузере — нажимать кнопку не нужно. Вы можете переключать отступ JSON между 2 и 4 пробелами в панели «Параметры». Когда JSON появится в области вывода, нажмите «Копировать», чтобы поместить его в буфер обмена, или «Скачать», чтобы сохранить как файл .json. Всё работает локально, поэтому ваш TOML никогда не покидает устройство.
Что такое TOML и зачем преобразовывать его в JSON?
TOML (Tom's Obvious, Minimal Language) — это формат конфигурационных файлов, созданный так, чтобы его было легко читать и писать человеку, с однозначной семантикой, точно отображаемой в хеш-таблицу. Он лежит в основе Cargo.toml в Rust, pyproject.toml в Python, а также используется в Hugo, Netlify и многих других инструментах. TOML преобразуют в JSON, когда нужно передать конфигурацию в программу или API, ожидающие JSON, программно изучить конфигурационный файл, сравнить две конфигурации инструментами JSON или управлять интерфейсом. TOML пишут люди; JSON читают машины — этот конвертер соединяет их.
Как даты и время TOML представляются в JSON?
В JSON нет нативного типа даты, поэтому дата-время TOML преобразуются в строки. Этот инструмент сохраняет точный вид даты TOML: дата-время со смещением вроде 1979-05-27T07:32:00Z становится "1979-05-27T07:32:00.000Z", локальная дата вроде 1979-05-27 остаётся "1979-05-27" (она не дополняется до полной метки времени), а локальное время вроде 07:32:00 становится "07:32:00.000". Многие конвертеры ошибочно превращают локальные даты в метки времени UTC на полночь — этот сохраняет исходный смысл, поэтому обратные преобразования проходят без потерь.
Поддерживает ли инструмент Cargo.toml и pyproject.toml?
Да. Cargo.toml и pyproject.toml — два самых распространённых реальных файла TOML, и оба полностью поддерживаются, включая вложенные таблицы ([dependencies], [tool.ruff]), встроенные таблицы (serde = { version = "1.0", features = ["derive"] }) и массивы таблиц ([[bin]]). Загрузите пример Cargo.toml или pyproject.toml выше, чтобы увидеть точную структуру получаемого JSON. Это удобно для панелей сборки, аудита зависимостей или любого скрипта, читающего метаданные проекта как JSON.
Как таблицы и массивы таблиц TOML преобразуются?
Заголовок таблицы TOML вроде [owner] становится вложенным объектом JSON под ключом "owner". Таблица с точками вроде [tool.ruff] становится вложенными объектами: { "tool": { "ruff": { ... } } }. Массив таблиц, записанный двойными скобками — повторяющийся [[servers]] — становится массивом объектов JSON: { "servers": [ { ... }, { ... } ] }. Встроенные таблицы ({ a = 1, b = 2 }) становятся обычными объектами JSON. Преобразование точно следует спецификации TOML 1.0.0.
Что происходит с очень большими целыми числами при преобразовании TOML в JSON?
TOML поддерживает 64-битные знаковые целые числа, но JavaScript (а значит и JSON в браузере) может точно представлять целые числа только до 2^53 - 1 (9007199254740991). Если ваш TOML содержит целое число больше этого — например, Snowflake ID или наносекундную метку времени — оно не может быть представлено без потерь как число JSON, и значение округляется с показом предупреждения. Это фундаментальное ограничение браузерного JavaScript, затрагивающее каждый браузерный конвертер. Для точного сохранения храните такие значения как строки в кавычках в вашем TOML.
Отправляются ли мои данные TOML на какой-либо сервер?
Нет. Весь разбор и преобразование происходят полностью в вашем браузере с помощью JavaScript. Ваш TOML никогда не загружается, не сохраняется и не логируется. Это делает инструмент безопасным для файлов Cargo.toml с токенами приватного реестра, pyproject.toml с внутренними индексами пакетов, конфигураций развёртывания с секретами и любой другой чувствительной конфигурации. Вы можете убедиться в этом, открыв вкладку «Сеть» в браузере — вставка TOML не вызывает ни одного сетевого запроса.
Можно ли преобразовать JSON обратно в TOML?
Да. Используйте парный Конвертер JSON в TOML для обратного направления или нажмите кнопку «Поменять направление» вверху этого инструмента, чтобы поменять ввод и вывод местами. Учтите, что у преобразования JSON в TOML есть несколько ограничений, которых нет у TOML в JSON — верхний уровень должен быть объектом, а у значений null нет эквивалента в TOML — что инструмент JSON в TOML поясняет и обрабатывает за вас.
Как преобразовать TOML в JSON в командной строке?
Популярный вариант — CLI 'toml' на Rust или инструмент 'yj' на Go (yj -tj читает TOML и пишет JSON). В Python 3.11+ можно выполнить: python3 -c "import tomllib, json, sys; print(json.dumps(tomllib.load(sys.stdin.buffer)))" < config.toml. В Node.js: npx smol-toml (или небольшой скрипт с библиотекой smol-toml). Для быстрого разового преобразования в браузере без установки чего-либо этот инструмент — самый быстрый путь.
Как преобразовать TOML в JSON в Python, Rust или Node.js?
В Python 3.11+: import tomllib, json; data = tomllib.load(open('config.toml','rb')); json.dump(data, open('config.json','w')). В Rust: используйте крейты toml и serde_json — let value: toml::Value = toml::from_str(&text)?; let json = serde_json::to_string_pretty(&value)?. В Node.js: import { parse } from 'smol-toml'; const data = parse(text); const json = JSON.stringify(data, null, 2) — это та же библиотека и подход, что использует этот инструмент.
Сохраняет ли конвертер порядок ключей и что с комментариями?
Порядок ключей внутри таблицы сохраняется: ключи появляются в выводе JSON в том же порядке, что и в вашем TOML. Однако комментарии удаляются — в JSON нет синтаксиса комментариев, поэтому комментарии TOML с # не могут пережить преобразование. Если вам нужно сохранить документацию, добавьте её как удобное для JSON поле или храните исходный TOML рядом со сгенерированным JSON.
Есть ли ограничение на размер файла для ввода TOML?
Жёсткого ограничения нет, но ввод больше 200 КБ переключается с живого преобразования в ручной режим: появляется кнопка «Конвертировать», и преобразование выполняется только по нажатию, сохраняя браузер отзывчивым. Типичные конфигурационные файлы — даже большие рабочие пространства Cargo.toml или многосредовые конфигурации развёртывания — преобразуются менее чем за 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% в браузере. Именованный, десятичный или шестнадцатеричный вывод; данные не загружаются.