У цій статті
YAML проти JSON: вибір правильного формату
YAML (YAML Ain't Markup Language) та JSON (JavaScript Object Notation) — обидва популярні формати серіалізації даних з різними цілями. YAML створений для зручності читання людиною і є стандартом для конфігураційних файлів у Kubernetes, Docker Compose, Ansible та CI/CD-конвеєрах. JSON оптимізований для обміну даними між системами та API.
Хоча JSON є строгою підмножиною YAML (кожен валідний JSON-документ є валідним YAML), YAML додає такі функції, як коментарі, багаторядкові рядки, якорі та псевдоніми, що робить його більш виразним для конфігурації.
Як працює конвертація YAML в JSON
Конвертація YAML в JSON проста, оскільки обидва формати представляють однакові базові типи даних: об'єкти, масиви, рядки, числа, булеві значення та null.
- YAML в JSON — конвертер аналізує відступи та синтаксис YAML, розв'язує якорі та псевдоніми, потім серіалізує в компактний JSON
- JSON в YAML — конвертер аналізує структуру JSON та виводить YAML з правильними відступами
- Коментарі YAML видаляються при конвертації, оскільки JSON не має синтаксису коментарів
Спробуйте безкоштовно — реєстрація не потрібна
Конвертувати YAML в JSON →Коли використовувати конвертер
Конвертер YAML в JSON допомагає розробникам переміщувати дані між контекстами конфігурації та виконання.
- Розробка API — конвертуйте конфігураційні файли YAML в JSON для тіл запитів API
- Відладка Kubernetes — конвертуйте маніфести YAML в JSON для інструментів, що приймають лише JSON
- Автоматизація CI/CD — перетворюйте визначення конвеєрів YAML в JSON для програмної обробки з jq
Поради та найкращі практики
Пам'ятайте ці поради для чистих конвертацій YAML в JSON.
- Перевірте відступи — YAML чутливий до пробілів, і непослідовні відступи спричиняють помилки парсингу. Використовуйте пробіли, ніколи табуляцію
- Знайте про особливості YAML — значення як yes, no, on, off інтерпретуються як булеві. Беріть їх в лапки, якщо потрібні літеральні рядки
- Збережіть якорі перед конвертацією — якщо ваш YAML використовує якорі (&) та псевдоніми (*), вони будуть розв'язані та розгорнуті в JSON
Часті запитання
Чи зберігаються коментарі YAML в JSON?
Ні. JSON не підтримує коментарі, тому коментарі YAML видаляються при конвертації. Якщо коментарі містять важливий контекст, розгляньте можливість переміщення цієї інформації в спеціальні поля документації.
Чому YAML інтерпретує 'yes' і 'no' як булеві значення?
YAML 1.1 трактує голі слова як yes, no, on, off, true, false як булеві значення. Це поширена пастка — наприклад, код країни 'NO' для Норвегії стає булевим false. Завжди беріть такі значення в лапки в YAML.
Чи є конвертація без втрат?
Для типів даних, спільних для обох форматів (рядки, числа, булеві, null, масиви, об'єкти), конвертація повністю без втрат. Специфічні для YAML функції, як коментарі, якорі та власні теги, розв'язуються або видаляються.