YAML до Конвертер JSON
Швидке та безпечне перетворення YAML у JSON. Ідеально підходить для файлів конфігурації та аналізу даних.
Швидке та безпечне перетворення YAML у JSON. Ідеально підходить для файлів конфігурації та аналізу даних.
YAML і JSON — тісно пов’язані формати — JSON технічно є суворою підмножиною YAML 1.2 — і конвертація між ними зазвичай проста. YAML додає зручні для людини функції, яких не вистачає JSON: коментарі, багаторядкові рядки без екранування, посилання на прив’язки та псевдоніми, більш гнучке цитування та структуру на основі відступів, яка нагадує звичайний макет документа. Це робить YAML популярним вибором для конфігураційних файлів (маніфести Kubernetes, робочі процеси GitHub Actions, Docker Compose), тоді як JSON домінує в корисних навантаженнях API.
Перетворення YAML на JSON зазвичай означає відмову від зручних для людини додаткових функцій YAML в обмін на формат, який машини легше аналізують і який є лінгва франка HTTP API. Коментарі видалені (JSON не має). Посилання на прив’язки перетворюються на їхні значення посилань. Багаторядкові рядки згортаються до стандартних рядків JSON із вбудованими символами нового рядка.
Цей конвертер аналізує YAML за допомогою js-yaml, найбільш поширеної бібліотеки YAML у JavaScript. Вихідні дані створюються за допомогою JSON.stringify із необов’язковим відступом. Перетворення обробляє весь стандартний синтаксис YAML 1.2, включаючи стиль потоку, стиль блоку, скаляри, послідовності, зіставлення, прив’язки, псевдоніми та стандартні типи тегів.
Більшість API і багато середовищ програмування очікують JSON. Конфігураційні файли, написані на YAML, потрібно перетворити на JSON під час інтеграції з кодом або службами, які приймають лише JSON. Інструментів для JSON також більше: jq, JSON Path, JSON Schema, а також широка екосистема валідаторів і трансформаторів — усі вони передбачають введення JSON.
JSON також є однозначним, ніж YAML. Гнучкість YAML створює сюрпризи при розборі — рядки на зразок «no» розбираються як логічне значення false у YAML 1.1, розбираються рядки версії як плаваючі, помилки відступів викликають мовчазні структурні зміни. Перетворення на JSON заморожує дані в менш неоднозначній формі.
Вставте YAML, отримайте JSON.
js-yaml реалізує YAML 1.2 з додатковою підтримкою примх YAML 1.1 (проблема «no» як false, вісімкові числа без префікса 0o). Синтаксичний аналізатор створює дерево об’єктів JavaScript, використовуючи власні типи: числа, рядки, логічні значення, значення null, масиви та звичайні об’єкти.
JSON.stringify серіалізує дерево об’єктів у JSON. Необов’язковий відступ дає гарний надрукований результат; без нього результатом є компактний однорядковий JSON. Спеціальні значення (NaN, Infinity, undefined) не є дійсними JSON; конвертер приводить їх до нуля, якщо вони присутні.
Граничні випадки: мітки часу YAML стають рядками ISO-8601 у JSON. Двійкові дані YAML (у кодуванні base64) перетворюються на рядок. Якір і псевдоніми перетворюються на повторювані значення в JSON, оскільки JSON не має посилального синтаксису.