UltKit

Konvertera JSON till YAML

Gör om JSON till YAML som går att läsa, granska och kommentera. Ladda upp .json-filer och få indragna .yaml-filer med samma nycklar, värden och ordning, redo att läggas i ett repository.

Datakonverterare

eller släpp CSV, TSV, TXT …-filer här ·

Max 95 MB per fil· Upp till 20 filer· Raderas efter 30 minuter

Utdata

Filerna bearbetas på våra servrar och raderas efter 30 minuter.

Så använder du verktyget

  1. 1

    Lägg till JSON-filerna

    Ladda upp API-svar, exporterade inställningar eller genererade manifest som .json, upp till 20 filer och 95 MB per fil. Varje fil måste innehålla ett giltigt JSON-värde.

  2. 2

    Behåll standardinställningarna

    YAML är redan valt under Konvertera till. För en konfigurationsfil behöver inget annat ändras; utdata använder indrag med två mellanslag.

  3. 3

    Konvertera och checka in

    Tryck på Konvertera till YAML, ladda ner .yaml-filerna, lägg till kommentarer där nästa läsare behöver dem och checka in.

Svar

Hur konverterar jag JSON till YAML?

Ladda upp .json-filen och tryck på Konvertera till YAML. Objekt blir indragna nyckel: värde-block, arrayer blir listor med bindestreck, och strängar som YAML skulle kunna misstolka behåller sina citattecken.

Därför konverterar du JSON till YAML för konfigurationsfiler

Det mesta av JSON skapas av programvara: ett API-svar, en inställningsexport, utdata från en generator. Det mesta av YAML underhålls av människor. Konverteringen markerar oftast ögonblicket då data slutar vara maskinutdata och blir något som ett team äger, som ett driftsättningsmanifest i Git, en CI-pipeline eller en uppsättning Ansible-variabler.

Ett typiskt fall: du anropar ett moln-API, får tillbaka en JSON-beskrivning av en resurs på 200 rader och vill behålla den som infrastrukturkod. Efter konvertering får du en fil utan klammerparenteser och kommatecken, där en enradsändring ger en enradsdiff och du kan förklara udda värden i kommentarer. Detsamma gäller testdata och översättningsfiler som icke-utvecklare redigerar. När du i stället behöver en platt tabell, för ett kalkylblad eller en rapport, passar JSON till CSV bättre.

Verktyg som använder YAML för konfiguration

Här hamnar konverterad YAML oftast
OrganisationKravKälla
GitHub ActionsArbetsflöden finns i .github/workflows som .yml- eller .yaml-filerGitHub Docs
GitLab CI/CDPipelinen definieras i .gitlab-ci.yml i repositoryts rotGitLab Docs
Docker ComposeTjänster beskrivs i compose.yaml (tidigare docker-compose.yml)Docker Docs
AnsiblePlaybooks och variabelfiler skrivs i YAMLAnsible Docs
KubernetesManifest accepterar JSON eller YAML; dokumentation och Helm-charts använder YAMLKubernetes

Exempel på JSON till YAML med knepiga värden

YAML-utdata för {"name":"api","version":"1.10","debug":false,"tags":["web","eu"],"country":"NO"}
name: api
version: "1.10"
debug: false
tags:
  - webb
  - eu
country: "NO"

Vad YAML ger dig

  • Kommentarer med #
  • Kortare diffar i kodgranskning
  • Inga klammerparenteser, kommatecken eller citattecken på de flesta rader
  • Flerradstext med |-blockskalärer

Att se upp med

  • Indraget har betydelse, så ett felplacerat mellanslag ändrar strukturen
  • Tabbar är inte tillåtna för indrag
  • Strängar utan citattecken kan tolkas som tal eller booleska värden
  • Långsammare och mindre enhetliga parsers än för JSON

Exemplet visar varför en enkel sök-och-ersätt av klammerparenteser inte räcker. Versionen 1.10 är en sträng i JSON; skriven utan citattecken i YAML skulle den läsas som talet 1.1. NO, ISO-koden för Norge, skulle läsas som false av YAML 1.1-parsers som PyYAML. Båda behåller sina citattecken, medan riktiga tal och booleska värden förblir utan.

JSON och YAML jämförda

JSON

JavaScript Object Notation

JSON är ett lättviktigt textformat för strukturerad data, populariserat av Douglas Crockford i början av 2000-talet och standardiserat som RFC 8259 och ECMA-404. Det representerar objekt, listor, strängar, tal, booleska värden och null med enkel, läsbar syntax. Det är standardformatet för webb-API:er, konfigurationsfiler och datautbyte mellan appar i nästan alla programmeringsspråk. Det har inga inbyggda kommentarer, datum eller scheman, och stora nästlade filer är svåra att läsa utan en visare.

Komprimering
–
Transparens
–
Animation
–
Introducerades
2001 · Douglas Crockford
JSON-omvandlare

YAML

YAML

YAML ("YAML Ain't Markup Language") är ett lättläst dataformat som först släpptes 2001. Det använder indrag i stället för parenteser, stöder kommentarer och är en övermängd av JSON. Det används mycket för konfiguration i Docker Compose, Kubernetes, GitHub Actions och många program. Eftersom det bygger på blanksteg går det lätt sönder av ett enda felplacerat mellanslag, och vissa värden, som "no" eller datum, kan tolkas oväntat.

Komprimering
–
Transparens
–
Animation
–
Introducerades
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
YAML-omvandlare

Man konverterar JSON till YAML när genererad data eller API-data ska bli en konfigurationsfil som människor underhåller, granskar i pull requests och förser med kommentarer.

Frågor om att konvertera JSON till YAML

Är JSON redan giltig YAML?

Med YAML 1.2 ja: revisionen från 2009 skrevs så att varje JSON-dokument också är ett YAML-dokument. Du kan klistra in JSON i en .yaml-fil och de flesta verktyg godtar den. Att konvertera handlar om läsbarhet: blockstil utan klammerparenteser, citattecken och kommatecken är vad granskare och nästa förvaltare förväntar sig.

Varför står vissa värden inom citattecken i YAML-filen?

För utan citattecken skulle YAML tolka dem som en annan typ. En versionssträng som 1.10 skulle bli talet 1.1, och yes eller off kan bli booleska värden i äldre parsers. Strängar som ser ut som tal, datum eller booleska värden behöver citattecken för att förbli strängar, så en noggrann konvertering behåller dem.

Kan jag lägga till kommentarer efter konverteringen?

Ja, och det är en vanlig anledning till att konvertera. Skriv # följt av din anteckning i slutet av en rad eller på en egen rad. I JSON fanns inget sätt att förklara varför ett värde är satt; i YAML går det, vilket gör granskningar och överlämningar enklare.

Varför ger min YAML ett fel om tabbtecken?

YAML-specifikationen förbjuder tabbar för indrag; bara mellanslag räknas. Konverteraren skriver mellanslag, men en editor som är inställd på att infoga tabbar kan förstöra filen vid nästa redigering. Ställ in editorn på mellanslag för .yaml-filer.

Godkänner Kubernetes det konverterade manifestet?

kubectl läser både JSON och YAML, så datan är densamma oavsett; YAML-versionen är helt enkelt vad de flesta dokument, Helm-charts och kodgranskningar använder. Om du senare behöver JSON tillbaka för jq eller ett API-anrop gör YAML till JSON det omvända.