UltKit

Konwerter JSON na YAML

Zamień JSON na YAML, który łatwo przeczytać, przejrzeć i opatrzyć komentarzami. Prześlij pliki .json i pobierz pliki .yaml z wcięciami, z tymi samymi kluczami, wartościami i kolejnością, gotowe do dodania do repozytorium.

Konwerter danych

lub upuść Pliki CSV, TSV, TXT … tutaj ·

Maks. 95 MB na plik· Do 20 plików· Usuwane po 30 min

Plik wynikowy

Pliki są przetwarzane na naszych serwerach i usuwane po 30 min.

Jak korzystać z narzędzia

  1. 1

    Dodaj pliki JSON

    Prześlij odpowiedzi API, wyeksportowane ustawienia lub wygenerowane manifesty jako pliki .json, do 20 plików po 95 MB każdy. Każdy plik musi zawierać jedną poprawną wartość JSON.

  2. 2

    Zostaw ustawienia domyślne

    YAML jest już wybrany w polu Konwertuj na. Przy pliku konfiguracyjnym nie trzeba nic zmieniać; wynik używa wcięć o szerokości dwóch spacji.

  3. 3

    Konwertuj i zatwierdź w repozytorium

    Kliknij Konwertuj na YAML, pobierz pliki .yaml, dodaj komentarze tam, gdzie przyszły czytelnik będzie ich potrzebował, i zatwierdź zmiany w repozytorium.

Odpowiedź

Jak przekonwertować JSON na YAML?

Prześlij plik .json i kliknij Konwertuj na YAML. Obiekty stają się wciętymi blokami klucz: wartość, tablice listami z myślnikami, a ciągi znaków, które YAML mógłby błędnie odczytać, zachowują cudzysłowy.

Po co konwertować JSON na YAML w plikach konfiguracyjnych

Większość JSON-a tworzy oprogramowanie: odpowiedź API, eksport ustawień, wynik generatora. Większość YAML-a utrzymują ludzie. Konwersja zwykle oznacza moment, w którym dane przestają być wynikiem pracy maszyny, a stają się czymś, co należy do zespołu, np. manifestem wdrożenia w Git, potokiem CI lub zestawem zmiennych Ansible.

Typowy przypadek: wywołujesz API chmury, dostajesz 200-liniowy opis zasobu w JSON i chcesz zachować go jako infrastrukturę jako kod. Po konwersji masz plik bez nawiasów klamrowych i przecinków, w którym zmiana jednej linii daje jednoliniowy diff, a nietypowe wartości możesz wyjaśnić w komentarzach. To samo dotyczy danych testowych i plików tłumaczeń edytowanych przez osoby niebędące programistami. Gdy zamiast tego potrzebujesz płaskiej tabeli do arkusza lub raportu, lepszy będzie JSON na CSV.

Narzędzia, których pliki konfiguracyjne są w YAML

Gdzie zwykle trafia przekonwertowany YAML
OrganizacjaWymaganieŹródło
GitHub ActionsPrzepływy pracy znajdują się w .github/workflows jako pliki .yml lub .yamlGitHub Docs
GitLab CI/CDPotok jest zdefiniowany w pliku .gitlab-ci.yml w katalogu głównym repozytoriumGitLab Docs
Docker ComposeUsługi opisuje się w compose.yaml (dawniej docker-compose.yml)Docker Docs
AnsiblePlaybooki i pliki zmiennych są pisane w YAMLAnsible Docs
KubernetesManifesty akceptują JSON lub YAML; dokumentacja i wykresy Helm używają YAMLKubernetes

Przykład konwersji JSON na YAML z nietypowymi wartościami

Wynik YAML dla {"name":"api","version":"1.10","debug":false,"tags":["web","eu"],"country":"NO"}
name: api
version: "1.10"
debug: false
tags:
  - web
  - pl
country: "NO"

Co daje YAML

  • Komentarze z #
  • Krótsze diffy w przeglądzie kodu
  • Brak nawiasów klamrowych, przecinków i cudzysłowów w większości linii
  • Tekst wielowierszowy z blokami skalarnymi |

Na co uważać

  • Wcięcia mają znaczenie, więc zbłąkana spacja zmienia strukturę
  • Tabulatory nie są dozwolone we wcięciach
  • Ciągi bez cudzysłowów mogą zostać odczytane jako liczby lub wartości logiczne
  • Parsery wolniejsze i mniej jednolite niż dla JSON

Przykład pokazuje, dlaczego zwykłe zastąpienie nawiasów klamrowych nie wystarczy. Wersja 1.10 jest w JSON ciągiem znaków; zapisana w YAML bez cudzysłowów zostałaby odczytana jako liczba 1.1. NO, kod ISO Norwegii, zostałby odczytany jako false przez parsery YAML 1.1, takie jak PyYAML. Oba zachowują cudzysłowy, a prawdziwe liczby i wartości logiczne pozostają bez nich.

Porównanie JSON i YAML

JSON

JavaScript Object Notation

JSON to lekki format tekstowy do danych strukturalnych, spopularyzowany przez Douglasa Crockforda na początku lat 2000 i ustandaryzowany jako RFC 8259 oraz ECMA-404. Reprezentuje obiekty, tablice, ciągi znaków, liczby, wartości logiczne i null za pomocą prostej, czytelnej składni. Jest domyślnym formatem API internetowych, plików konfiguracyjnych i wymiany danych między aplikacjami w niemal każdym języku programowania. Nie ma wbudowanych komentarzy, dat ani schematów, a duże zagnieżdżone pliki trudno czytać bez przeglądarki JSON.

Kompresja
–
Przezroczystość
–
Animacja
–
Rok powstania
2001 · Douglas Crockford
Konwerter JSON

YAML

YAML

YAML („YAML Ain't Markup Language”) to przyjazny dla człowieka format danych, wydany po raz pierwszy w 2001 roku. Używa wcięć zamiast nawiasów, obsługuje komentarze i jest nadzbiorem JSON. Jest szeroko stosowany w konfiguracji Docker Compose, Kubernetes, GitHub Actions i wielu aplikacji. Poleganie na białych znakach sprawia, że łatwo go zepsuć jedną źle postawioną spacją, a niektóre wartości, takie jak „no” czy daty, mogą zostać zinterpretowane niespodziewanie.

Kompresja
–
Przezroczystość
–
Animacja
–
Rok powstania
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
Konwerter YAML

JSON zamienia się na YAML, gdy wygenerowane dane lub dane z API mają stać się plikiem konfiguracyjnym, który ludzie utrzymują, recenzują w pull requestach i opatrują komentarzami.

Pytania o konwerter JSON na YAML

Czy JSON jest już poprawnym YAML-em?

Według YAML 1.2 tak: wersja z 2009 roku została napisana tak, aby każdy dokument JSON był też dokumentem YAML. Można wkleić JSON do pliku .yaml i większość narzędzi go zaakceptuje. Konwersja służy czytelności: styl blokowy bez nawiasów klamrowych, cudzysłowów i przecinków jest tym, czego oczekują recenzenci i kolejny opiekun projektu.

Dlaczego niektóre wartości w YAML są ujęte w cudzysłów?

Bo bez cudzysłowów YAML odczytałby je jako inny typ. Wersja 1.10 stałaby się liczbą 1.1, a yes lub off mogłyby zostać potraktowane jako wartości logiczne w starszych parserach. Ciągi znaków wyglądające jak liczby, daty lub wartości logiczne wymagają cudzysłowów, aby pozostały tekstem, dlatego staranna konwersja je zachowuje.

Czy po konwersji mogę dodać komentarze?

Tak, i to częsty powód konwersji. Wpisz # i swoją uwagę na końcu linii lub w osobnej linii. JSON nie pozwalał wyjaśnić, dlaczego dana wartość jest ustawiona; YAML na to pozwala, co ułatwia recenzje i przekazywanie projektu.

Dlaczego mój YAML zgłasza błąd znaku tabulacji?

Specyfikacja YAML zabrania tabulatorów we wcięciach; liczą się tylko spacje. Konwerter zapisuje spacje, ale edytor ustawiony na wstawianie tabulatorów może uszkodzić plik przy następnej edycji. Ustaw w edytorze spacje dla plików .yaml.

Czy Kubernetes zaakceptuje przekonwertowany manifest?

kubectl czyta zarówno JSON, jak i YAML, więc dane są takie same; wersja YAML jest po prostu tym, czego używa większość dokumentacji, wykresów Helm i przeglądów kodu. Jeśli później potrzebujesz JSON-a dla jq lub wywołania API, YAML na JSON odwraca konwersję.