YAML do Konwerter JSON
Szybka i bezpieczna konwersja YAML do JSON. Idealny do plików konfiguracyjnych i analizy danych.
Szybka i bezpieczna konwersja YAML do JSON. Idealny do plików konfiguracyjnych i analizy danych.
YAML i JSON to blisko powiązane formaty — JSON jest technicznie ścisłym podzbiorem YAML 1.2 — a konwersja między nimi jest zwykle prosta. YAML dodaje przyjazne dla człowieka funkcje, których brakuje w JSON: komentarze, wieloliniowe ciągi znaków bez ucieczki, odniesienia do kotwic i aliasów, bardziej elastyczne cytowanie i struktura oparta na wcięciach, która przypomina naturalny układ dokumentu. To sprawia, że YAML jest popularnym wyborem w przypadku plików konfiguracyjnych (manifesty Kubernetes, przepływy pracy GitHub Actions, Docker Compose), podczas gdy JSON dominuje w ładunkach API.
Konwersja YAML na JSON zwykle oznacza rezygnację z przyjaznych dla człowieka dodatków YAML w zamian za format, który łatwiej jest analizować maszynowo i który jest lingua franca interfejsów API HTTP. Komentarze są odrzucane (JSON nie ma żadnego). Odniesienia zakotwiczone są przekształcane w ich wartości referencyjne. Ciągi wieloliniowe zwijają się do standardowych ciągów JSON z osadzonymi znakami nowej linii.
Ten konwerter analizuje YAML przy użyciu js-yaml, najczęściej używanej biblioteki YAML w JavaScript. Dane wyjściowe są generowane przy użyciu JSON.stringify z opcjonalnym wcięciem. Konwersja obsługuje całą standardową składnię YAML 1.2, w tym styl przepływu, styl blokowy, skalary, sekwencje, mapowania, kotwice, aliasy i standardowe typy znaczników.
Większość interfejsów API i wiele środowisk programistycznych oczekuje formatu JSON. Pliki konfiguracyjne zapisane w YAML należy przekonwertować na JSON podczas integracji z kodem lub usługami akceptującymi tylko JSON. Narzędzia dla JSON są również bogatsze: jq, JSON Path, JSON Schema i szeroki ekosystem walidatorów i transformatorów zakładają wejście JSON.
JSON jest również jednoznaczny w sposób, w jaki YAML nie jest. Elastyczność YAML stwarza niespodzianki podczas analizowania — ciągi takie jak analizowanie „nie” jako wartość logiczna fałsz w YAML 1.1, ciągi wersji analizowane jako elementy zmiennoprzecinkowe, błędy wcięcia powodujące ciche zmiany strukturalne. Konwersja na JSON zamraża dane w mniej dwuznacznej formie.
Wklej YAML, pobierz JSON.
js-yaml implementuje YAML 1.2 z opcjonalną obsługą dziwactw YAML 1.1 (problem „nie” jako fałsz, liczby ósemkowe bez przedrostka 0o). Parser tworzy drzewo obiektów JavaScript, używając typów natywnych: liczb, ciągów znaków, wartości logicznych, wartości null, tablic i zwykłych obiektów.
JSON.stringify serializuje drzewo obiektów do formatu JSON. Opcjonalne wcięcie pozwala uzyskać ładny wydruk; bez niego wynikiem jest kompaktowy, jednowierszowy JSON. Wartości specjalne (NaN, Infinity, niezdefiniowane) nie są prawidłowymi wartościami JSON; konwerter zmusza je do zera, jeśli są obecne.
Przypadki Edge: znaczniki czasu YAML stają się ciągami ISO-8601 w formacie JSON. Dane binarne YAML (zakodowane w formacie Base64) stają się ciągiem. Kotwice i aliasy są przekształcane w zduplikowane wartości w formacie JSON, ponieważ JSON nie ma składni odniesienia.