Перейти до вмісту

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

Перетворіть документ конфігурації TOML на JSON прямо у вашому браузері.

Введення
Вихід

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

Вставте файл конфігурації TOML і отримайте чистий, структурований об’єкт JSON — формат, який насправді очікують більшість сценаріїв, API та інструментів збірки. TOML є стандартним для Cargo.toml від Rust, pyproject.toml від Python, Hugo та незліченних конфігурацій додатків саме тому, що людям легко читати та писати, але в той момент, коли конфігурація потребує досягнення JavaScript, кроку CI або виклику REST, JSON — це те, чого хоче решта інструментів. Цей конвертер усуває цю прогалину без встановлення синтаксичного аналізатора чи написання сценарію.

Синтаксичний аналізатор охоплює частини TOML 1.0, які ви насправді зустрінете в реальній конфігурації: голі ключі та ключі в лапках, пунктирні ключі, такі як server.host, які створюють вкладені об’єкти, базові рядки з екрануванням та їх багаторядкова форма в потрійних лапках, літеральні рядки для шляхів, які не слід екранувати, цілі числа в десятковій системі, hex, вісімкові чи двійкові з підкресленням роздільники, числа з плаваючою речовиною, включаючи експоненти та inf/nan, логічні значення, зміщення та локальні дата-час, масиви, що охоплюють кілька рядків із кінцевими комами, вбудовані таблиці та заголовки [table] і [[array of tables]] для повторюваних блоків, як-от список серверів або залежностей. Коментарі, що починаються з #, видаляються, точно так, як їх визначає TOML.

Виберіть відступ у JSON — два пробіли, чотири пробіли, табуляція або один скорочений рядок для вставлення в інше місце — і за бажанням відсортуйте ключі кожного об’єкта в алфавітному порядку, що значно полегшує різницю між двома версіями згенерованої конфігурації. Якщо в TOML є синтаксична проблема, інструмент називає точний рядок і те, що не так — незакритий рядок, відсутній знак рівності, дублікат ключа — замість того, щоб просто мовчки помилятися.

Усе працює локально у вашому браузері. Ніщо, що ви вставляєте, нікуди не завантажується, що має значення, коли конфігурація містить хости бази даних, кінцеві точки API чи інші відомості, які ви не хочете надсилати на сервер лише для переформатування файлу.

FAQ

Які частини TOML це підтримує?
Практична підмножина 1.0: ключі (голі, лапки, пунктир), базові та літеральні рядки, включаючи багаторядкові форми, цілі числа в десятковій/hex/вісімковій/двійковій системах, числа з плаваючою речовиною та inf/nan, логічні значення, дати, час і дати, масиви, вбудовані таблиці, заголовки [table] і [[masiv of tables]], а також # коментарі.
Що відбувається з датами та датами?
TOML має справжні типи дати й часу, яких немає в JSON, тому вони зберігаються точно так, як вони записані — як рядки JSON, як-от «1979-05-27T07:32:00Z», — а не вгадуються в щось інше.
Як перетворюються блоки [[масив таблиць]]?
Кожен заголовок [[name]] додає новий об’єкт до масиву під цим ключем, тому повторювані блоки — список залежностей, серверів або плодів — стають масивом JSON об’єктів у порядку їх появи.
Що він робить, коли TOML має помилку?
Він повідомляє номер рядка та коротку причину — незакритий рядок, відсутній '=', ключ, визначений двічі — замість повернення порожнього або частково перетвореного результату.
Чи завантажено кудись мій файл конфігурації?
Ні. Перетворення повністю виконується у вашому браузері, а вставлений TOML ніколи не залишає ваш пристрій — це безпечно для конфігурацій, що містять облікові дані або внутрішні імена хостів.