Українська

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

YAML функції, втрачені в JSON перетворення: коментарі, анкери та теги

· Як працює

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

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

YAML Коментарі та анкери, що захоплюють дані, в процесі вирішення JSON
Головна ToolAcre векторна ілюстрація

YAML має коментарі, анкери, псевдоніми, об'єднувальні ключі, теги та багатодокументні потоки; JSON не існує. Ця пошта пояснює, що конвертер працює з кожним і чому перетворення назад ніколи не відновлює оригінальний файл.

Файл знову прийшов і без єдиного коментаря — YAML налаштування перетворені на JSON і назад, і все, що не вижити

А.А YAML файл може повернутись JSON довгий навіть після того, як кожен зникне коментар. Якір, які поділяють одну картографію, вирішуються на повторне об'єктне дослідження, тому послідовникатор пише кожну копію самостійно. Цінності можуть бути ще згодні, але авторизація та пояснення пішли.

Ось чому YAML-доJSON-доYAML не зберігайте джерела. ToolAcre читає обмежений графік значення та напишіть новий документ. Не зберігає бетонну синтаксису дерево, що містить коментарі, якірні імена, вибір цитувань або блочного клацання.

Коментарі до JSON не існує місця для них і кожен # рядок, що йде після перетворення

Коментарі відхиляються від YAML кицька, бо JSON не містить вузлів коментарів. Лінія починається з `#` може пояснити, чому час існує або хто володіє послугою; після видалення алгоритм не може заважати слово або розміщення. Перетворення спини створює дійсні YAML без цього оперативного контексту.

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

Анкери та псевдоніми — &default та *default розширюються на повторні копії, і як файл росте в результаті

Анколи та псевдоніми приймаються в межах безпеки, потім вирішуються. `base: &b {x: 1}` і `copy: *b` стають двома шляхами об'єкта, що містять `x: 1`. Вихід YAML зручності `noRefs`, так що спільний стиль об'єкта не створює нових анкерів. Ущільнені відносини пішло навіть коли вижити повторне значення.

Рекурсивні псевдоніми відмовляються, тому що JSON не виявляти цикли. Розширення Alias захоплюється підрахунком псевдонімів, нахилом та розширеним вимірюванням гучності; припинено короткий документ, який буде натягувати на більш ніж мільйон значень. Це захищає вкладку без претензій довільного YAML підтримка.

Ключові слова — <<: конвенції з YAML 1.1, як парсери, які підтримують його розтоплення об'єднаної картування, і що відбувається в тих, які не

Нарис передбачає YAML 1.1 зливаються ключі. ToolAcre завантаження тільки js-yaml’s JSON або Core schema, ні з яких дозволяє об'єднати тип. Під цими щілинами `<<` ключ - це звичайні дані, а не інструкція з об'єднання картоппінгів. Подарувавши посилене зливу, оскільки відвантажена поведінка буде помилковою.

Якщо ваше джерело залежить від симулятики з'єднання клавіш, вирішіть його в додатку, яка володіє конвенцією або перезаписати значення прямо перед перетворенням. Алюз, що використовується як значення звичайного `<<` може бути ще вирішити об'єкт, але ключ залишається `<<`; не еквівалентно зливати його членам до батьківського.

З'єднувач ключів не ввімкнено двома обмеженими щілинами, які перетворюються кораблі

Стандартні мітки, визнані обмеженою щімкою, можуть вибрати базові типи, такі як `!!str` або `!!int`. Користувальницькі та багаті теги— включаючи бінарні, часові, набір, замовлену карту, JavaScript функції та конструктори об’єктів Python — відхилені. Вони не стрункі і не виконані.

А.А YAML потік відокремлений `---` приймається. Один документ стає одним із значень, який є одним із основних засобів, які мають попередження про це, на який він є обов’язковим. Сепаратор причепа може створити порожній кінцевий документ, відповідно до вибраної схеми. Немає цілей тут має модель потоку, тому масив є заявленою конвенцією.

Небезпечні теги відмовляються; багатопотокові потоки стають масивами

Контакти `defaults: &d` з реченнями та часом, коментар пояснить час, а потім `service:` з `inherited: *d`. JSON містить як за замовчуванням, так і повторне спадкове об'єкт; коментар і назва якого відсутні. Перетворення, що JSON назад видає дві карти, а не якірних відносин.

Додати `---` далі за іншим документом і JSON кореня стає масивом документів. Додати `!!binary` і перетворення зупиняється з обмеженим натяком. Ці три зміни виділяються підтримані дані, структурні конвенції та непідтримувані конструкції.

Що це не криється — ключове замовлення та спосіб котирування, яке зазвичай вижити, але не гарантується форматом

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

Автор захищає неоднозначні колони від цитатних значень YAML 1.1 споживач може проявлятися, але це вибір безпеки може відрізнятися від оригінального стилю автора. Рівномірність даних - це нездатний тест для звичайного JSON-формні значення; текстова рівноправність не є.

Ключове замовлення може залишатися, при цьому коментарі, анкери, мітки, заклинання та стиль не зберігаються

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

Перетворення файлу представника перед прийняттям робочого процесу. Важко зауважити, що в разі виникнення проблем, що не є обов’язковими для забезпечення їх виконання YAML. Панель є відмінним об'єктивом, на якому дивиться парсер, але це не редактора коментаря або повний YAML трансформатори об'єктів-моделі.

Для міграції, окремих змін значень від джерельно-тільки змін. А.А JSON глибинне порівняння може встановити, чи збереглися звичайні значення, в той час як текст дифу розкриває коментарі, анкери та стиль, які обов'язково змінені. Не перевірте заміну іншого. Викликаючи порівняння значень, нехтувати вихідною інформацією, викликати всі текстові зміни збій даних, ігнорувати дійсну ресеріалізацію.