CodeKitHub
JSON-værktøjer

JSON ↔ YAML-konverter

Senest opdateret:

For at konvertere JSON til YAML bliver objekter til indrykkede nøgle: værdi-blokke, og arrays bliver til `-`-præfikserede listeelementer — den omvendte konvertering løser YAML-typegenveje som ucitrede true, null eller tal tilbage til korrekte JSON-typer. Dette værktøj foretager den konvertering, i begge retninger, helt i din browser.

Hvad er dette værktøj?

YAML er foretrukket format til de fleste moderne konfigurationsfiler — Kubernetes-manifester, Docker Compose, GitHub Actions og GitLab CI-pipelines, Ansible-playbooks — fordi det er mere læsbart end JSON for mennesker, der redigerer filer i hånden: ingen anførselstegn krævet omkring de fleste nøgler, ingen efterfølgende kommaer at få forkert, og kommentarer understøttes. JSON er derimod det, de fleste API'er og programmeringssprog producerer og forbruger nativt.

Dette værktøj bygger bro mellem de to ved brug af js-yaml, en udbredt JavaScript-implementering af YAML-specifikationen, så parsing og generering følger de samme regler, som et YAML-bevidst værktøj som `kubectl` eller en CI-runner ville anvende.

Konvertering af JSON til YAML gør objekter til indrykkede nøgle: værdi-blokke og arrays til `-`-præfikserede listeelementer. Konvertering af YAML til JSON gør det modsatte, og løser også YAML-specifikke typegenveje (som ucitrede `true`, `null` eller tal) til deres korrekte JSON-typer.

Hvorfor bruge det?

  • Tovejs — konverter JSON til YAML eller YAML til JSON fra samme skærm.
  • Standardbaseret parsing og generering via js-yaml, så outputtet matcher det, som rigtige YAML-værktøjer (Kubernetes, CI-systemer, Ansible) forventer.
  • Håndterer indlejrede objekter og arrays uanset dybde, og konverterer mellem YAML's indrykningsbaserede struktur og JSON's klammer og parenteser.
  • Fortolker korrekt YAML-typegenveje — ucitrede true/false, null og numeriske værdier bliver deres korrekte JSON-typer i stedet for strenge.
  • Kopiér til udklipsholder eller download som en .json- eller .yaml-fil.
  • 100% klient-side — intet du indsætter, uploades nogen steder.

Sådan bruger du det

  1. Vælg en retning: "JSON → YAML" eller "YAML → JSON".
  2. Indsæt dine data i inputboksen.
  3. Klik "Convert".
  4. Gennemgå resultatet, kopiér det derefter eller klik "Download" for at gemme en fil.

Eksempel

Input

{"name":"Alice","roles":["admin","editor"],"active":true}

Output

name: Alice
roles:
  - admin
  - editor
active: true

Læg mærke til hvordan arrayet bliver til en liste af elementer med bindestreg under "roles", og booleanen forbliver ucitreret true frem for at blive strengen "true".

Praktiske tips

  • Skriver du et Kubernetes-manifest eller en GitHub Actions-workflow: udkast strukturen som JSON (mange editorer og AI-værktøjer genererer JSON mere pålideligt), og konverter derefter til YAML til den endelige fil.
  • Fejlfinder du en YAML-konfiguration, der opfører sig mærkeligt: konverter den til JSON for at se præcis, hvilke værdier der er strenge, tal eller booleans — YAML's fleksible syntaks kan skjule typeuoverensstemmelser, der er indlysende i JSON.
  • Hvis din JSON indeholder nøgler med specielle tegn eller som starter med et tal, vil js-yaml automatisk citere dem i YAML-outputtet, så de parses korrekt tilbage.

Hvorfor typekonvertering er den trickyste del af YAML

YAML's største brugbarhedsfordel over JSON — at anførselstegn ikke er påkrævet omkring de fleste værdier — er også dens største kilde til subtile fejl. Det klassiske eksempel er "Norge-problemet": i YAML 1.1 (brugt af mange ældre parsere) fortolkes en ucitreret værdi af `no` som booleanen `false`, ikke strengen "no", hvilket har ødelagt virkelige landekode-konfigurationer, der lister Norge. Dette værktøj følger YAML 1.2-specifikationen, som indsnævrede mængden af ucitrede værdier, der behandles som booleans, til kun `true` og `false` (og deres store/små bogstaver-varianter), hvilket reducerer — dog ikke eliminerer — denne type overraskelse. Hvis du er i tvivl om, hvordan en værdi vil blive typet, er det sikreste valg at citere den eksplicit i din YAML.

Ofte stillede spørgsmål

Bevares YAML-kommentarer, når man konverterer til JSON og tilbage?

Nej. JSON har intet koncept for kommentarer, så konvertering af YAML til JSON fjerner eventuelle #-kommentarer i kilden. Hvis du konverterer den JSON tilbage til YAML, dukker kommentarerne ikke op igen — dette er en iboende begrænsning ved formatet, ikke en fejl i værktøjet.

Hvordan håndterer værktøjet YAML-ankre og -aliaser (& og *)?

Den underliggende parser (js-yaml) løser ankre og aliaser, før den producerer JSON, så en YAML-fil, der bruger &-ankre og *-aliaser til at genbruge en blok data, konverteres til JSON med de data udfoldet fuldt ud hvert sted, det refereres.

Hvorfor kom mit YAML-tal igennem som en streng i JSON, eller omvendt?

Hvis en værdi er citeret i YAML-kilden (f.eks. version: "3.10"), behandles den som en streng med vilje — dette betyder noget, fordi ucitrede YAML-tal som 3.10 kan miste det efterfølgende nul, når de parses som flydende tal. Citer en værdi i kilde-YAML'en, hvis du specifikt har brug for, at den behandles som tekst.

Kan jeg konvertere en YAML-fil med flere dokumenter (adskilt af ---)?

Dette værktøj konverterer ét YAML-dokument ad gangen. Hvis din fil har flere dokumenter adskilt af ---markører, konverter ét afsnit ad gangen, eller fjern separatorerne og flet dem til ét dokument først, hvis det passer til dit brug.

Bliver mine data uploadet nogen steder?

Nej. Konverteringen kører helt i din browser via js-yaml-biblioteket — intet sendes til en server, hvilket gør det sikkert at bruge med rigtige konfigurationsfiler, inklusive dem med interne hostnavne eller infrastrukturdetaljer.

Relaterede værktøjer