Українська

Інструменти розробника · Конвертер Syntax

Як TOML Таблиці стають JSON об'єкти: [table], [[array]] і пунктируючі ключі

· Як працює

Опубліковано ToolAcre · Редакція журналу

домл свінгери Інформатика

TOML стільниці, що спускаються в гніздо JSON об'єкт дерево
Головна ToolAcre векторна ілюстрація

TOML's headers дивитися нічого подібно JSON- брекети, але вони визначають саме те ж саме гніздування. Ця пошта пояснює, як [сервер], [[products] і a.b.c мапа на JSON об'єкти і масиви, і де два моделі дивержуть.

Де прийшла сяйво? — пласк TOML файл, переведений в глибоке знезаду JSONі заголовки, які викликали її

А.А TOML файл може з'явитися майже плоско, тому що кронштейни переносять на блискавку. `[a.b.c]` відкриває проміжні таблиці, тому `d = 1` ставка, що вона стає `{"a":{"b":{"c":{"d":1}}}}`. У JSON брекети роблять ієрархію видимим TOML виражає через активний стельовий шлях.

ToolAcre делегує синтаксисну парі до смоло-томлу, а потім нормалізує значення JSON не може переносити. Це не лінійно-рерайтинговий рерайтинг. Столи, пунктирувальні ключі та масиви таблиць стають звичайними об'єктами та масивами до JSON послідовність, що є чому їхнє заклинання і коментарі не доступні в виході.

[table] головки — як заголовок відкриває об'єкт, і як [a.b.c] створює проміжні об'єкти, що несуть

Одномісний брекет-головок відкриває столик. `[owner]` пряма за домовленістю `owner`; `[owner.contact]` створює або вводить об'єкт зв'язку, що не прилягає. Не потрібно мати окремих заголовків. Їхнє існування слідує від сегментів шляху в заголовку.

Призначання перед будь-яким заголовком залишаються в корені. Надалі столи не перетворюються на них. При перегляді перетворених JSON, дотримуйтесь повного плану власності, а не фізичного відстані між лініями: TOML’ поточний стіл залишається активним доки не змінить його ще одного заголовка.

[[array of столи]] — чому повторне подвійне головка придає об'єкти до масиву, а замовлення воно зберігає

Двомісний брекет-головок призначає таблицю до масиву. Два `[[server]]` перетворюються `server: [{...},{...}]` у вихідному порядку. Поле під кожним головуванням належать до цього масиву, доки не починається інший головок, що робить повторне конфігурацію явною в JSON.

Замовити всередині масиву дані і зберігатися. Презентація об'єкта може бути відсортовано, коли вибрано варіант, але члени масиву ніколи не перезамовлені. Налаштування двох змін пріоритетів сервера або послідовності плагіна, а не просто форматування документа.

Dotted keys and inline Столи — a.b = 1 й = 1 ми можемо самі зателефонувати одержувачу

Дозвольте завдання надати ще одну ступню нотації: `a.b.c = true` виводить однакову форму об'єкта, як відповідні таблиці заголовків. Столи для вбудовування `point = { x = 1, y = 2 }` зберегти об'єкти відразу. Ці форми можуть описати подібні дерева, дивлячись на дуже різні рецензента.

JSON записів тільки отриманих ключів і значень, не які TOML не закохувати їх. Перетворення назад не може відновити оригінальний вибір серед заголовків, пунктирувальних клавіш і вбудованих таблиць. Мистецтво TOML автор обирає свою вірну послідовність з дерева.

Види, які переносять і типи, які не є — цілими, плаваючими, болеанами і рядками на карті прямо; дата-times стають рядками і JSON нулі не має TOML укр

Стрінги, безпечні цілі, плавки, булеани, масиви та таблиці на карті прямо. TOML’ чотири часові типи не: час відсутнього часу, локальна дата-time, локальна дата та місцевий час стають їх RFC 3339- як джерело рядків, так і попереджувальних імен кожного шляху і виду. Автор пізніше цитати тих рядків, а не переробляти датні токени.

TOMLпідписка 64-місні цілі можуть перевищувати JavaScript’Безпека цілого діапазону. smol-toml повертає такі значення, як BigInt при необхідності; ToolAcre перетворює їх на десяткові рядки і попереджає, як округлення цифр. Це зберігає заклинання за вартістю зміни JSON тип.

Приклад роботи: pyproject.toml — [проект], [project.optional-залежність] і [[[[[[[[[[]]]]tool.plugins]] список перетворений на JSON з кожним рівнем слідувати

Написати `name = "demo"`, `[project]`, `dependencies = ["a", "b"]`, `[project.optional]`, `test = ["vitest"]`, потім два `[[tool.plugins]]` таблиці з різними назвами. JSON ім'я місць в корені, гніздах проекту і опціонально, і виробляє плагіни масиву beneath інструмент.

Додати `released = 1979-05-27` і `huge = 9223372036854775807`. Перший стає рядок `1979-05-27`; другий стає десятковим рядком. І попередження виявляти зміни шляхи, що не--JSON типи рецензованих замість того, щоб мовчати дату або номер співакції.

Що це не криється - перетворення JSON назад до ідіоматика TOML з чутливим поголовуванням, що включає в себе вибір стилю не повністю визначає правила

JSON-доTOML підтримується для кореневого об'єкта, але не відтворює вибір ідіоматичних авторів або коментарів. Нулл-значені ключі випускаються; null всередині масиву стає порожнім рядком для збереження позицій. Кореневий масив, скаляр або null відмовлено тому, що TOML документ повинен бути столиком.

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

Написання JSON назад TOML підтримується, але коментарі, типи дат і авторський стиль не повертаються

Читати далі TOML головки як доріжки і подвійні кронштейни як додаткові операції. Мистецтво JSON перегляд цінний для відстеження отриманого дерева, при цьому попередження вигнають час і широкі цілі, які перекреслюють крайній край типу. Не викликайте операцію без втрат, коли виникає попередження.

Для міграції конфігурації, зберігайте оригінальну сторону конвертованого виходу. Перевірити значення спочатку, потім редагувати значення TOML організація для зчитувачів та цільового інструменту. Синтаксис перетворювачі виконує механічний крок пароза-і-витритовий; він не може визначити, що конкретне групування проекту, прийнятих ключів або чи підтримує цей файл.

У фінальному розділі необхідно відокремити три питання, які легко розмити разом. Спочатку вижили паписті значення? По-друге, зробив будь-який TOML-тільки тип ставати JSON рядок або будь-який null зникне? Третя, є новосертифікованим TOML організований в спосіб підтримки може зрозуміти? Перші два можуть бути перевірені на значення та попередження; третій необхідний огляд людини. Зберігаючи ті перевірки, окремі не перешкоджає технічному правленню, що називається вірною міграцією, коли його типи або авторська структура змінилися.