YAML til JSON-konverter
Indsæt YAML (Kubernetes-manifester, Docker Compose, CI-konfigurationer), og få ren JSON med det samme. Fejl viser den præcise linje med en markør.
Kører i din browserIngen tilmeldingIntet uploades
Sådan bruger du YAML til JSON
- Indsæt YAML i venstre felt, eller åbn en
.yaml/.yml-fil. - JSON vises til højre, mens du skriver. Vælg 2 mellemrum, 4 mellemrum eller tabulator til outputtet.
- Sæt flueben i Sortér nøgler for at sortere nøgler alfabetisk. Det hjælper, når du sammenligner konfigurationer.
- Hvis YAML'en er ugyldig, viser statuslinjen linje og kolonne, og de fejlbehæftede linjer vises nedenunder med en
^-markør. - Kopiér eller download JSON'en, eller tryk på Byt om for at konvertere den tilbage til YAML.
Sådan oversættes YAML til JSON
JSON er en delmængde af YAML 1.2, så hver YAML-mapping bliver et JSON-objekt, hver sekvens bliver et array, og skalarer bliver strenge, tal, booleans eller null. Funktioner, der kun findes i YAML, opløses under konverteringen:
- Kommentarer (
# …) fjernes, fordi JSON ikke har kommentarer. - Ankre og aliasser (
&base,*base,<<: *base) udfoldes til fulde kopier. - Tidsstempler som
2024-01-02bliver til ISO 8601-strenge. - Strenge over flere linjer (
|-literal- og>-foldede blokke) bliver til almindelige strenge med\n-escapes.
YAML med flere dokumenter
En enkelt fil kan indeholde flere YAML-dokumenter adskilt af ---, hvilket er almindeligt i Kubernetes-manifester. JSON har ingen tilsvarende funktion, så konverteren returnerer et JSON-array med ét element pr. dokument og skriver det i statuslinjen. Et enligt afsluttende --- ignoreres.
Faldgruber i YAML 1.1 vs. 1.2
Konverteren følger YAML 1.2, den gældende specifikation. Mange ældre værktøjer (PyYAML, Rubys Psych, nogle Kubernetes- og Ansible-versioner) læser stadig YAML 1.1, hvor reglerne er anderledes:
- Norge-problemet: i YAML 1.1 betyder
country: nofalse, så Norges landekodeNOforsvinder. Det samme gælderyes,on,off,yogn. YAML 1.2 betragter kuntrueogfalsesom booleans. - Oktaltal:
0755er oktal i 1.1, men et almindeligt decimaltal i 1.2, som bruger0o755. Sæt filrettigheder i anførselstegn for en sikkerheds skyld. - Sexagesimale tal: i 1.1 kan
22:30blive parset som tallet 1350. Sæt klokkeslæt og port-mappings som"8080:80"i anførselstegn.
Retningen JSON → YAML citerer automatisk tvetydige strenge ('no', 'on', 'y'), så den YAML, der genereres, læses ens i begge versioner.
Ofte stillede spørgsmål
Bliver min YAML uploadet nogen steder?
Hvorfor fejler min YAML med “bad indentation”?
-) er indrykket ensartet under deres overordnede nøgle.Hvad sker der med YAML-kommentarer?
Hvorfor forblev <code>no</code> en streng?
true/false er booleans. Ældre YAML 1.1-parsere ville gøre no, yes, on og off til booleans (“Norge-problemet”).Kan jeg konvertere et Kubernetes-manifest med flere ressourcer?
--- bliver ét element i JSON-output-arrayet, klar til jq eller kubectl apply -f -, som også accepterer JSON-lister.