JSON to YAML

Конвертація JSON у формат YAML

Спробувати приклад

Введення JSON

Виведення YAML

Працює локально · Безпечно вставляти секрети
YAML з'явиться тут…

Що таке конвертація JSON у YAML?

Конвертація JSON у YAML перетворює дані з JavaScript Object Notation у YAML Ain't Markup Language. Обидва формати представляють однакові структури даних (об'єкти, масиви, рядки, числа, булеві значення, null), але використовують різний синтаксис. JSON покладається на фігурні дужки, квадратні дужки та коми. YAML використовує відступи та переноси рядків, що робить вивід ближчим до звичайного тексту. На відміну від XML, жоден із форматів не вимагає схеми.

YAML розроблений як зручний для читання формат серіалізації даних. Це стандартна мова конфігурації для Kubernetes-маніфестів, файлів Docker Compose, playbook-ів Ansible, робочих процесів GitHub Actions та багатьох CI/CD-систем. Коли вихідні дані у форматі JSON, а цільова система очікує YAML, потрібен конвертер, який точно зберігає кожне значення, тип і рівень вкладеності без втрати даних.

Онлайн-конвертація JSON у YAML зручна, коли ви отримуєте відповіді API або експортовані дані у форматі JSON і потрібно вставити їх у конфігураційний файл YAML. Конвертація є повністю зворотньою для всіх стандартних типів JSON: рядки, числа, булеві значення, null, масиви та об'єкти безпосередньо відображаються у їх YAML-еквіваленти. Значення, що містять двокрапки або спеціальні символи, автоматично беруться в лапки, щоб вивід був валідним YAML.

Навіщо конвертувати JSON у YAML?

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

Миттєва конвертація
Вставте JSON і отримайте YAML-вивід негайно. Жодного очікування обробки на сервері, завантаження файлів, обмежень запитів.
🔒
Обробка з пріоритетом конфіденційності
Ваші дані ніколи не залишають браузер. Конвертація виконується повністю у JavaScript на вашому пристрої, тому облікові дані, токени та API-ключі залишаються приватними.
🔀
Підтримка будь-якої структури JSON
Глибоко вкладені об'єкти, великі масиви, змішані типи, рядки Unicode та спеціальні символи — все конвертується коректно. Інструмент зберігає повну структуру даних.
📋
Без облікового запису та встановлення
Відкрийте сторінку і починайте конвертувати. Без реєстрації, без розширень, без CLI-інструментів для встановлення. Працює на будь-якому пристрої з браузером.

Сценарії використання JSON to YAML

Kubernetes та Docker Compose
Відповіді API та експортовані конфігурації часто надходять у форматі JSON. Конвертуйте їх у YAML для безпосереднього використання у Kubernetes-маніфестах, Helm-чартах та файлах Docker Compose.
Конфігурація CI/CD-пайплайну
GitHub Actions, GitLab CI, CircleCI та Azure Pipelines — всі використовують YAML. Якщо конфігурації пайплайнів генеруються програмно з JSON, конвертуйте вивід перед комітом.
Ansible Playbooks
Ansible очікує YAML для playbook-ів та файлів інвентарю. Конвертуйте JSON-експорти інвентарю з хмарних API у формат YAML, який вимагає Ansible.
Інспекція відповідей API
REST API повертають JSON. Конвертація вкладеної відповіді у YAML робить ієрархію даних видимою з першого погляду — це швидше для перегляду, ніж JSON із великою кількістю дужок.
Міграція конфігураційних файлів
При міграції застосунку з конфігурації на основі JSON (наприклад, tsconfig.json, експорти package.json) на інструменти з підтримкою YAML — пакетно конвертуйте значення замість того, щоб передруковувати їх.
Навчання та документація
Студенти та технічні автори використовують паралельне відображення JSON/YAML, щоб зрозуміти, як структури даних відображаються між форматами. Конвертер надає миттєві та точні приклади.

Порівняння JSON та YAML

JSON та YAML можуть представляти однакові дані, але їх синтаксис і можливості відрізняються так, що це важливо для конкретних сценаріїв використання.

ХарактеристикаJSONYAML
SyntaxCurly braces, square brackets, colons, commasIndentation-based, colons, dashes
ReadabilityModerate — nested brackets become denseHigh — visual hierarchy from indentation
CommentsNot allowed (RFC 8259)Supported with #
Multi-line stringsEscape sequences only (\n)Block scalars with | or >
Data typesstring, number, boolean, null, object, arraySame plus date, timestamp, binary
File sizeSlightly larger (brackets + quotes)Slightly smaller (no brackets)
Trailing commasNot allowedNot applicable (no commas)
SpecRFC 8259 / ECMA-404YAML 1.2 (yaml.org)

Підводні камені YAML після конвертації

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

Неекрановані yes/no стають булевими значеннями
Парсери YAML 1.1 розглядають голі yes, no, on, off, true та false як булеві значення. Якщо у вашому JSON є рядкове значення "yes" або "no", YAML-вивід може втратити лапки і бути розпарсений як булеве значення старими інструментами. YAML 1.2 обмежує це лише значеннями true/false.
Помилки відступів ламають парсинг
YAML використовує відступи для визначення структури. Один зайвий або відсутній пробіл може змінити зміст або спричинити помилку парсингу. На відміну від JSON, де неправильно поставлена кома дає чітку помилку, помилки відступів у YAML можуть непомітно змінити ієрархію ваших даних.
Двокрапки у значеннях потребують лапок
Двокрапка з пробілом (": ") — це роздільник ключ-значення у YAML. Якщо ваш рядок JSON містить таку послідовність (наприклад, "http://example.com"), YAML-вивід повинен брати значення в лапки. Більшість конвертерів обробляє це автоматично.
Файли з кількома документами
YAML підтримує кілька документів в одному файлі, розділених ---. У JSON немає аналога. При конвертації JSON-масиву конфігурацій кожен елемент може стати окремим YAML-документом або залишитися елементом масиву. Дізнайтеся, який формат очікує цільовий інструмент.

Приклади коду

Для програмної конвертації JSON у YAML у більшості мов потрібна бібліотека серіалізації YAML. Стандартна бібліотека обробляє парсинг JSON; для YAML-виводу потрібен додатковий пакет.

JavaScript (Node.js)
import YAML from 'js-yaml'

const json = '{"host":"localhost","port":3000,"debug":true}'
const obj = JSON.parse(json)
const yamlStr = YAML.dump(obj, { indent: 2 })
console.log(yamlStr)
// → host: localhost
// → port: 3000
// → debug: true
Python
import json, yaml

json_str = '{"host": "localhost", "port": 3000, "debug": true}'
data = json.loads(json_str)
yaml_str = yaml.dump(data, default_flow_style=False, sort_keys=False)
print(yaml_str)
# → host: localhost
# → port: 3000
# → debug: true
Go
package main

import (
    "encoding/json"
    "fmt"
    "gopkg.in/yaml.v3"
)

func main() {
    jsonStr := `{"host":"localhost","port":3000,"debug":true}`
    var data map[string]interface{}
    json.Unmarshal([]byte(jsonStr), &data)

    yamlBytes, _ := yaml.Marshal(data)
    fmt.Println(string(yamlBytes))
    // → debug: true
    // → host: localhost
    // → port: 3000
}
CLI (yq / jq + Python)
# Using yq (https://github.com/mikefarah/yq)
echo '{"host":"localhost","port":3000}' | yq -P
# → host: localhost
# → port: 3000

# Using Python one-liner
echo '{"host":"localhost","port":3000}' | python3 -c "import sys,json,yaml; print(yaml.dump(json.load(sys.stdin), default_flow_style=False))"

Часті запитання

Чи є конвертація JSON у YAML зворотньою?
Так, для всіх стандартних типів JSON. Рядки, числа, булеві значення, null, масиви та об'єкти мають прямі еквіваленти у YAML. Конвертований YAML можна знову розпарсити та отримати ідентичні дані. Єдина косметична відмінність — форматування: YAML використовує відступи замість дужок.
Чи може YAML представляти все, що може JSON?
Так. YAML є надмножиною JSON (починаючи з YAML 1.2). Кожен валідний JSON-документ є також валідним YAML. YAML додає можливості, яких немає у JSON: коментарі, якорі/псевдоніми, багаторядкові рядки та додаткові скалярні типи, як-от дати.
Чому Kubernetes та Docker використовують YAML замість JSON?
YAML підтримує коментарі, що є критично важливим для документування інфраструктурних конфігурацій. Він також більш читабельний для глибоко вкладених структур, оскільки відступи замінюють «шум» від дужок. Kubernetes насправді приймає і JSON, і YAML, але спільнота та вся офіційна документація використовують YAML.
Як обробляти великі JSON-файли?
Цей конвертер працює у вашому браузері, тому може обробляти файли до кількох мегабайт без проблем. Для дуже великих файлів (50 МБ+) використовуйте CLI-інструмент на кшталт yq або Python-скрипт із бібліотекою PyYAML. Вони обробляють дані як потік і використовують менше пам'яті.
Чи зберігає конвертер порядок ключів?
Так. Конвертер виводить YAML-ключі в тому самому порядку, в якому вони з'являються у JSON-вході. JSON-об'єкти технічно не впорядковані за специфікацією, але на практиці парсери зберігають порядок вставки, і цей інструмент підтримує цей порядок у YAML-виводі.
Якій версії YAML відповідає вивід?
Вивід відповідає угодам YAML 1.2. Це означає, що лише true та false обробляються як булеві літерали (не yes/no/on/off). Рядки, які можуть бути неправильно інтерпретовані, автоматично беруться в лапки для запобігання неоднозначності парсингу.
Чи безпечно вставляти API-ключі та токени в цей інструмент?
Так. Конвертація виконується повністю у вашому браузері за допомогою JavaScript. Жодні дані не передаються на жодний сервер. Ви можете перевірити це, відкривши інспектор мережі браузера і переконавшись, що під час конвертації запити не надсилаються.