Інструменти розробника · Конвертер Syntax
YAML до JSON Тип коерекція: як так, немає і 0777 значення зміни
· Як працює
Опубліковано ToolAcre · Редакція журналу
yaml свінгери Інформатика

YAML вирішує непроцитовані скаляри в типи, а правила розрізняються між YAML 1.1 і 1.2. Ця пошта показує, як конвертер вирішує, що значення є boolean, ціле, плавлення або рядок, і як контролювати результат.
Вартість, яка повернулася до себе, - просто YAML scalar показує як текст, перетворений на JSON як булева, і служба, яка потім неправдива
Вартість, такі як `NO` може стати помилковим у YAML 1.1 вантажоперевезення, але це не те, що це конвертер суден. І ToolAcre вибір YAML 1.2 schemas, так `NO`, `yes`, `no`, `on` і `off` залиште рядки. Виправлено питання відкриття, оскільки приклад вимагає, що ця панель перетворюється `NO` в істинну або помилкову, навчати протилежну її протестовану поведінку.
Види все ще існують. За замовчуванням JSON шмама, `null` нулі `~`, порожній значення і `0o755` залиште рядки. Вибір Core змінює три форми на null, null і 493. Вихід корисний точно так, що він виводить розчинений JavaScript значення, а не претендувати, що кожен звичай YAML токен несе явний тип.
Вартість, яка залишилася текстом під YAML 1.2
Імплитна роздільна здатність відбувається при тому, що js-yaml читає джерело. Вибраний обмежений schema вирішує, чи відповідає звичайний скаляр, який відповідає нулі, булевої або нумеричної форми перед написанням конвертера JSON. Цитування обходів, які рішення: `"0o755"` є текстом під schema, і блоком scalar залишається рядком, включаючи лінії розривів, представлених його індикатором збивання.
Це пароізоляція та послідовність, не заміна регулярного вираження. Читач будує рядки, цифри, болеани, наночки, масиви та предмети; `JSON.stringify` потім видає значення з вибраним відступом. Коментарі та токени вже пішли на стадії написання, тому не можна реконструювати, чи був ряд неповноцінних або письмових в іншому прийнятих YAML анотація.
Мистецтво YAML 1.1 правила — так/no/on/off булевани, 0777 як октал, 1:30 як sexagesimal, і версія рядків, як 1.10 читати як плавати
Списки контурів YAML 1.1 coercions, такі як sexagesimal час і octal. Вони є відповідними небезпеками сумісності, але вони не доступні тут. ToolAcre навмисно не пропонує 1.1 щіма. Його UI каже, що ні відвантажити варіант читати `NO` як помилковий, і тести шпильки, що країна код і слова так, ні, ні, і відключення як рядки.
Що обмежує метод відключення. Якщо інше додаток перетворює слова в булевани, порівняти його на конфігурацію парсера з ToolAcre замість того, щоб відслідкувати ідентичний вихід. Перетворювач може показати, що власне два schemas виготовити; він не може засвідчити про схему або версію, що використовується CI runner, Framework або розгортання системи, яка пізніше споживає файл.
YAML 1.1 coercions є небезпечними це конвертер дозволяє уникнути
За замовчуванням JSON schema приймає тільки скалярні заклинання, сумісні з JSON’ модель. Ядро додає знайомий YAML null форми, шістнадцяткові і восьмикутні цілості, нескінченність і NaN. Ядро все ще залишається всередині обмеженого навантажувача: теги об'єктів мов, дати, набори, замовлені карти і бінарні теги відмовляються, а не побудовані.
Нескінченність і НаН розкривають ще одну межу. JavaScript може тримати їх, але JSON не можна писати їх. Перетворювач визначає кожну шлях і попереджає, що значення стає нав'язливим. Це зведений недолік, не втрата перетворення. Промо- `.inf` не дозволяється, тому що значення, потім залишається на рівні `.inf`.
Двох відправлених YAML 1.2 schemas відрізняється тільки на документованих формах скальсара
ПАРА `tilde: ~`, `empty:`, `octal: 0o755`, `country: NO` і `answer: yes`. При строгому вибраному JSON значення `"~"`, `""`, `"0o755"`, `"NO"` і `"yes"`. З Core вибрано тільки перші три зміни: нахил і порожні стають навпіл, і октал стає 493. Країна і відповідь на перебування тексту в обох виходах.
Тепер процитуйте кожну вартість і повторіть. Обидва schemas повертає рядки, оскільки джерело стверджується тип. Цей порівняння є код-аккурентом і більш корисним, ніж контрастність YAML 1.1 з 1.2 всередині інструменту, який ніколи не завантажує 1.1. Також вона дає рецензовану фіксацію для перевірки іншого parser без вгадок від своєї документації.
Приклад роботи: один файл під ToolAcre’ строгий і ядро-сама
Виявлені стандартні теги приймаються тільки при обмеженому щім визнаючи їх: `!!str 123` стає рядок `123`, в той час як `!!int "7"` стає числом 7. Теґи такі як `!!binary`, `!!timestamp`, `!!set`, `!!js/function` і конструктори об'єктів Python відхиляються. Це запобігає пошкодженню YAML читач від стати довільно-об'єктним заводом.
Цитування залишається портативним вибором при конфігураційному значенні, що запам'ятовується, виділяється. Він зберігає провідні нулі, редакційно-посилені слова без залежно від явного тегу, що виживається іншим інструментом. Мистецтво JSON результат показує обраний тип, але не може носити стиль цитати або тег, який виробляв це значення.
Що це не криється — застосування рівня додатків в результаті чого JSON, які можуть знову захоплювати типи (наприклад, рядок '1- до no1
Код заявки може з'явитися JSON знову. Анонім API чи можна читати `"1"` і перетворюйте його в номер, або відхиляйте його на щіму. Синтаксис перетворювачі зупиняється після виробництва JSON текст; не запускати реактиватор, навколишнє середовище або правило бізнесу. При цьому чистий перетворення доводить синтаксису і картування, не приймається остаточним сервісом.
Дублікат YAML ключі є окремим питанням. ToolAcre зберігає останнє значення та повідомляє повторне ключ з положенням. Багатомовні струми стають масивами. Якщо ви хочете змінити, що програма бачить навіть коли очікується, що кожен тип скаляра, то не прослухайте лише форматування JSON тіло.
Похід: цитувати що-небудь машина може прочитати - і як перетворити YAML до JSON в браузері виявляє, що кожен скальр вирішується
Цитувати текст, який нагадує машинний токен, потім перевірте JSON види. Використовуйте суворий, коли ви хочете найменші JSON-видна лексика скаляра; вибираємо Core свідомо коли YAML необхідні форми для нагородження і нумерії. Неінше варіант - YAML 1.1, і не робить споживача в потоку, що слідують тим самим правилам.
Панель робить вибір parser видимим і повертає попередження про значення, які не можуть представляти ціль. Це чесна обіцянка: вона розкриває, як це впровадження вирішує кожен скалар. Не претензію універсального YAML поведінка або збереження коментарів, тегів і заклинання через круглу подорож.