/yaml-json

YAML ↔ JSON konverterer

Konverter konfigurasjonsfiler og strukturerte data mellom YAML- og JSON-format.

Slik fungerer det

Dette verktøyet lar deg konvertere konfigurasjonsfiler og datastrukturer mellom YAML og JSON. Alt skjer direkte i nettleseren din, noe som betyr at sensitive konfigurasjonsdetaljer aldri sendes over internett.

Om dette verktøyet

YAML og JSON beskriver den samme typen data, men på veldig ulike måter. YAML bruker innrykk, korte nøkkel/verdi-par og lite tegnstøy, noe som gjør det til favoritten for konfigurasjonsfiler i verktøy som Docker Compose, Kubernetes, GitHub Actions og Ansible. JSON bruker klammer, sitattegn og komma, og er standarden for maskin-til-maskin-kommunikasjon. Dette verktøyet konverterer mellom de to, direkte i nettleseren: YAML til JSON når du skal sende konfigurasjon til et API, JSON til YAML når du vil ha en mer lesbar utgave. Kommentarer i YAML dokumenteres i utdataen, siden JSON ikke støtter dem.

Slik bruker du det

  1. Lim inn YAML- eller JSON-innhold i tekstområdet.
  2. Verktøyet gjenkjenner formatet automatisk og viser motsatt format i det andre panelet.
  3. Justér innrykk (2 eller 4 mellomrom) og «flow-stil» versus «block-stil» for YAML om nødvendig.
  4. Kopier eller last ned resultatet som .yaml eller .json.

Eksempler

Enkel konfigurasjon
Innapp: name: verktoy port: 3000 hosts: - dev - prod
Ut{ "app": { "name": "verktoy", "port": 3000, "hosts": ["dev", "prod"] } }
Ankere og aliaser
Inndefaults: &d timeout: 30 retries: 3 prod: <<: *d timeout: 60
Ut{ "defaults": {"timeout":30,"retries":3}, "prod": {"timeout":60,"retries":3} }
YAML-ankere («&d») og «<<»-merge løses ut, siden JSON ikke støtter dem.

Vanlige bruksområder

  • Konvertere Kubernetes-manifester mellom YAML og JSON for API-kall.
  • Lese eller redigere GitHub Actions- og GitLab CI-filer.
  • Migrere gamle JSON-configs til mer lesbar YAML.
  • Klargjøre Ansible-, Helm- eller docker-compose-oppsett.
  • Feilsøke YAML-syntaks som ikke parses, feilmeldingen viser linje og kolonne.

Ofte stilte spørsmål

Er YAML en overmengde av JSON?
Fra og med YAML 1.2 (2009): ja, all gyldig JSON er også gyldig YAML. YAML har i tillegg innrykk-syntaks, kommentarer, ankere og merge-nøkler som JSON mangler.
Hva er «Norway-problemet» i YAML?
YAML 1.1 tolker uquoted verdier som «NO», «YES», «ON», «OFF» som boolske. Landkoden NO for Norge blir dermed false. Bruk YAML 1.2 eller pakk verdier i sitattegn: «"NO"».
Blir tall bevart nøyaktig?
Delvis. Standard JSON-parseren i JavaScript håndterer tall som IEEE 754 double, så heltall over 2^53 mister presisjon. Bruk BigInt eller send tallet som streng om du trenger full presisjon.
Hva skjer med kommentarer?
YAML→JSON: kommentarer forsvinner, siden JSON ikke støtter dem. JSON→YAML: verktøyet legger ikke til kommentarer. Skriv de manuelt inn i YAML-en om du trenger dem.

Teknisk bakgrunn

YAML («YAML Ain’t Markup Language») ble utviklet fra 2001 og fokuserer på lesbarhet. Data-typene inkluderer scalar (strings, tall, boolean, null), sekvens (lister) og mapping (dictionaries). Innrykk (kun mellomrom, ikke tab) definerer struktur. YAML 1.2 fjernet mange av kuriositetene fra 1.1, blant annet den kryptiske «Norway»-boolen. Ankere («&anchor») og aliaser («*anchor») lar deg gjenbruke dokumentfragmenter, og merge-nøkler («<<») kopierer felter fra andre noder. JSON, definert i RFC 8259, tillater bare seks typer: object, array, string, number, boolean og null. Strenge må ha doble sitattegn, det finnes ingen kommentarer, og tall er en enkel numerisk notasjon. Konvertering fra YAML til JSON krever at anker- og merge-referanser eksperimentelt løses opp, samt at tags som !!binary eller !!timestamp mappes til nærmeste JSON-primitive (base64-string, ISO 8601-string). Motsatt vei er trivielt siden JSON-typene alle finnes i YAML.