UltKit

JSON til YAML-konverter

Gjør om JSON til YAML som folk kan lese, gjennomgå og kommentere. Last opp .json-filer og få innrykket .yaml med de samme nøklene, verdiene og rekkefølgen, klar til å legges rett inn i et repository.

Datakonverterer

eller slipp CSV, TSV, TXT …-filer her ·

Maks 95 MB per fil· Opptil 20 filer· Slettes etter 30 minutter

Utdata

Filene behandles på serverne våre og slettes etter 30 minutter.

Slik bruker du dette verktøyet

  1. 1

    Legg til JSON-filene

    Last opp API-svar, eksporterte innstillinger eller genererte manifester som .json, opptil 20 filer på 95 MB hver. Hver fil må inneholde én gyldig JSON-verdi.

  2. 2

    Behold standardinnstillingene

    YAML er allerede valgt under Konverter til. For en konfigurasjonsfil trenger ingenting annet å endres; utdataene bruker innrykk på to mellomrom.

  3. 3

    Konverter og commit

    Trykk Konverter til YAML, last ned .yaml-filene, legg til kommentarer der neste leser trenger dem, og commit.

Svar

Hvordan konverterer jeg JSON til YAML?

Last opp .json-filen og trykk Konverter til YAML. Objekter blir innrykkede nøkkel: verdi-blokker, arrayer blir lister med bindestreker, og strenger som YAML kan misforstå beholder anførselstegnene.

Hvorfor konvertere JSON til YAML for konfigurasjonsfiler

Det meste av JSON lages av programvare: et API-svar, en eksport av innstillinger, utdata fra en generator. Det meste av YAML vedlikeholdes av mennesker. Konverteringen markerer ofte øyeblikket da data slutter å være maskinutdata og blir noe et team eier, som et deployment-manifest i Git, en CI-pipeline eller et sett med Ansible-variabler.

Et typisk tilfelle: du kaller et ssky-API, får tilbake en JSON-beskrivelse av en ressurs på 200 linjer, og vil beholde den som infrastrukturkode. Konvertering gir en fil uten klammer og kommaer, der en endring på én linje gir en diff på én linje, og du kan forklare uvanlige verdier i kommentarer. Det samme gjelder testdata og oversettelsesfiler som ikke-utviklere redigerer. Trenger du i stedet en flat tabell, for et regneark eller en rapport, passer JSON til CSV bedre.

Verktøy som bruker YAML i konfigurasjonsfilene

Hvor konvertert YAML vanligvis havner
OrganisasjonKravKilde
GitHub ActionsArbeidsflyter ligger i .github/workflows som .yml- eller .yaml-filerGitHub Docs
GitLab CI/CDPipelinen defineres i .gitlab-ci.yml i roten av repositorietGitLab Docs
Docker ComposeTjenester beskrives i compose.yaml (tidligere docker-compose.yml)Docker Docs
AnsiblePlaybooks og variabelfiler skrives i YAMLAnsible Docs
KubernetesManifester godtar JSON eller YAML; dokumentasjon og Helm-charts bruker YAMLKubernetes

Eksempel på JSON til YAML med vanskelige verdier

YAML-utdata for {"name":"api","version":"1.10","debug":false,"tags":["web","eu"],"country":"NO"}
name: betalings-api
version: "1.10"
debug: false
tags:
  - nett
  - eu
country: "NO"

Hva YAML gir deg

  • Kommentarer med #
  • Kortere differ i kodegjennomgang
  • Ingen klammer, kommaer eller anførselstegn på de fleste linjer
  • Tekst over flere linjer med |-blokker

Hva du bør passe på

  • Innrykk har betydning, så et feilplassert mellomrom endrer strukturen
  • Tabulatorer er ikke tillatt som innrykk
  • Strenger uten anførselstegn kan leses som tall eller boolske verdier
  • Tregere og mindre ensartede parsere enn for JSON

Eksempelet viser hvorfor det ikke er nok å søke og erstatte klammer. Versjonen 1.10 er en streng i JSON; skrevet uten anførselstegn i YAML ville den blitt lest som tallet 1.1. NO, ISO-koden for Norge, ville blitt lest som false av YAML 1.1-parsere som PyYAML. Begge beholder anførselstegnene, mens ekte tall og boolske verdier står uten.

JSON og YAML sammenlignet

JSON

JavaScript Object Notation

JSON er et lett tekstformat for strukturerte data, gjort populært av Douglas Crockford tidlig på 2000-tallet og standardisert som RFC 8259 og ECMA-404. Det representerer objekter, lister, tekststrenger, tall, boolske verdier og null med enkel, lesbar syntaks. Det er standardformatet for web-API-er, konfigurasjonsfiler og datautveksling mellom apper i nesten alle programmeringsspråk. Det har ingen innebygde kommentarer, datoer eller skjemaer, og store nestede filer er vanskelige å lese uten en viser.

Komprimering
–
Gjennomsiktighet
–
Animasjon
–
Introdusert
2001 · Douglas Crockford
JSON-konverterer

YAML

YAML

YAML («YAML Ain't Markup Language») er et lesbart dataformat som først ble lansert i 2001. Det bruker innrykk i stedet for parenteser, støtter kommentarer og er en overmengde av JSON. Det brukes mye til konfigurasjon i Docker Compose, Kubernetes, GitHub Actions og mange programmer. Siden det bygger på mellomrom, kan ett enkelt feilplassert mellomrom ødelegge filen, og enkelte verdier, som «no» eller datoer, kan tolkes uventet.

Komprimering
–
Gjennomsiktighet
–
Animasjon
–
Introdusert
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
YAML-konverterer

Folk konverterer JSON til YAML når genererte data eller API-data skal bli en konfigurasjonsfil som mennesker vedlikeholder, gjennomgår i pull requests og kommenterer.

Spørsmål om JSON til YAML-konverteren

Er JSON allerede gyldig YAML?

Under YAML 1.2, ja: revisjonen fra 2009 ble skrevet slik at alle JSON-dokumenter også er YAML-dokumenter. Du kan lime JSON inn i en .yaml-fil, og de fleste verktøy godtar den. Konvertering handler om lesbarhet: blokkstil uten klammer, anførselstegn og kommaer er det de som gjennomgår koden og neste vedlikeholder forventer.

Hvorfor står noen verdier i anførselstegn i YAML-filen?

Fordi YAML uten anførselstegn ville lese dem som en annen type. En versjonsstreng som 1.10 ville blitt tallet 1.1, og yes eller off kan bli boolske verdier i eldre parsere. Strenger som ligner på tall, datoer eller boolske verdier trenger anførselstegn for å forbli strenger, så en nøye konvertering beholder dem.

Kan jeg legge til kommentarer etter konverteringen?

Ja, og det er en vanlig grunn til å konvertere. Skriv # etterfulgt av notatet ditt på slutten av en linje eller på en egen linje. JSON hadde ingen måte å forklare hvorfor en verdi er satt; det har YAML, noe som gjør gjennomgang og overlevering enklere.

Hvorfor feiler YAML-filen min med en feil om tabulatortegn?

YAML-spesifikasjonen forbyr tabulatorer til innrykk; bare mellomrom gjelder. Konverteren skriver mellomrom, men et redigeringsprogram som er satt til å sette inn tabulatorer kan ødelegge filen ved neste redigering. Still inn redigeringsprogrammet til å bruke mellomrom i .yaml-filer.

Godtar Kubernetes det konverterte manifestet?

kubectl leser både JSON og YAML, så dataene er de samme uansett; YAML-versjonen er rett og slett det de fleste dokumentasjoner, Helm-charts og kodegjennomganger bruker. Trenger du senere JSON tilbake for jq eller et API-kall, snur YAML til JSON det.