Конвертер TOML в JSON
Вставьте TOML — получите JSON мгновенно в браузере. Поддержка Cargo.toml, pyproject.toml, дат и вложенных таблиц. 100% приватно, без загрузки на сервер.
Параметры · 2 пробела
Что такое 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
Вставьте свой TOML
Введите или вставьте свой TOML в поле ввода выше. Также можно нажать «Загрузить пример», чтобы попробовать реальный Cargo.toml, pyproject.toml или конфигурацию развёртывания.
- 2
Смотрите живой вывод JSON
JSON появляется мгновенно в панели вывода. Настройте параметр «Отступ» (2 или 4 пробела) под ваш целевой формат. Даты, таблицы и массивы таблиц обрабатываются автоматически.
- 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?
Как даты и время TOML представляются в JSON?
Поддерживает ли инструмент Cargo.toml и pyproject.toml?
Как таблицы и массивы таблиц TOML преобразуются?
Что происходит с очень большими целыми числами при преобразовании TOML в JSON?
Отправляются ли мои данные TOML на какой-либо сервер?
Можно ли преобразовать JSON обратно в TOML?
Как преобразовать TOML в JSON в командной строке?
Как преобразовать TOML в JSON в Python, Rust или Node.js?
Сохраняет ли конвертер порядок ключей и что с комментариями?
Есть ли ограничение на размер файла для ввода TOML?
Похожие инструменты
Все инструменты →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% в браузере. Именованный, десятичный или шестнадцатеричный вывод; данные не загружаются.