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

JSON-resultat

Sådan bruger du YAML til JSON

  1. Indsæt YAML i venstre felt, eller åbn en .yaml/.yml-fil.
  2. JSON vises til højre, mens du skriver. Vælg 2 mellemrum, 4 mellemrum eller tabulator til outputtet.
  3. Sæt flueben i Sortér nøgler for at sortere nøgler alfabetisk. Det hjælper, når du sammenligner konfigurationer.
  4. Hvis YAML'en er ugyldig, viser statuslinjen linje og kolonne, og de fejlbehæftede linjer vises nedenunder med en ^-markør.
  5. 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-02 bliver 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: no false, så Norges landekode NO forsvinder. Det samme gælder yes, on, off, y og n. YAML 1.2 betragter kun true og false som booleans.
  • Oktaltal: 0755 er oktal i 1.1, men et almindeligt decimaltal i 1.2, som bruger 0o755. Sæt filrettigheder i anførselstegn for en sikkerheds skyld.
  • Sexagesimale tal: i 1.1 kan 22:30 blive 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?
Nej. Parsingen sker i din browser med open source-biblioteket js-yaml. Konfigurationer med hemmeligheder eller interne værtsnavne forlader aldrig din maskine.
Hvorfor fejler min YAML med “bad indentation”?
Indlejring i YAML defineres af mellemrum, og tabulatorer er ikke tilladt til indrykning. Sørg for, at søskendenøgler står præcis ud for hinanden, og at listeelementer (-) er indrykket ensartet under deres overordnede nøgle.
Hvad sker der med YAML-kommentarer?
De fjernes. JSON har ingen kommentarsyntaks, så kommentarer kan ikke overføres. De gendannes ikke, hvis du konverterer tilbage til YAML.
Hvorfor forblev <code>no</code> en streng?
Værktøjet følger YAML 1.2, hvor kun 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?
Ja. Hver ressource adskilt af --- bliver ét element i JSON-output-arrayet, klar til jq eller kubectl apply -f -, som også accepterer JSON-lister.

Relaterede værktøjer