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 създава изненади при синтактичния анализ — низове като „не“ анализират като булево невярно в YAML 1.1, низове на версията се анализират като плаващи, грешки при отстъпа, предизвикващи тихи структурни промени. Преобразуването в JSON замразява данните в по-малко двусмислена форма.
Поставете YAML, вземете JSON.
js-yaml имплементира YAML 1.2 с незадължителна поддръжка за странности на YAML 1.1 (проблемът „no“ като false, осмични числа без префикс 0o). Анализаторът създава дърво на JavaScript обекти, използвайки собствени типове: числа, низове, булеви стойности, нула, масиви и обикновени обекти.
JSON.stringify сериализира дървото на обектите в JSON. Незадължителният отстъп създава красиво отпечатан резултат; без него резултатът е компактен едноредов JSON. Специалните стойности (NaN, Infinity, undefined) не са валиден JSON; конверторът ги принуждава да нулират, когато присъстват.
Крайни случаи: времевите клейма на YAML стават низове ISO-8601 в JSON. YAML двоичните данни (кодирани base64) се превръщат в низ. Котвите и псевдонимите се преобразуват в дублиращи се стойности в JSON, тъй като JSON няма референтен синтаксис.