Så här använder du det
- Välj riktning: JSON → YAML eller YAML → JSON.
- Klistra in din data eller tryck på ”Prova ett exempel”. Resultatet uppdateras medan du skriver.
- Välj 2 eller 4 blanksteg som indrag i utdata.
- Kopiera eller ladda ner resultatet. ”Använd utdata som indata” vänder riktningen så att du kan konvertera tillbaka.
Så fungerar det
Konverteringen använder YAML-biblioteket med öppen källkod (version 2), som implementerar YAML 1.2-specifikationen. YAML 1.2 är i praktiken en övermängd av JSON, så alla JSON-dokument konverteras till YAML utan förlust, och YAML som bara använder map-strukturer, listor, strängar, tal, booleska värden och null konverteras tillbaka till identisk JSON.
När YAML skrivs sätter verktyget citattecken runt strängar som en läsare skulle kunna uppfatta som något annat. Äldre YAML 1.1-parsrar, som PyYAML och många CI-verktyg, läser yes, no, on och off som booleska värden, 0777 som ett oktalt tal och 2024-01-31 som ett datum, så dessa skrivs som "yes", "0777" och "2024-01-31". Långa strängar viks inte över flera rader. Kommentarer kan inte föras över, eftersom JSON inte har några kommentarer.
Vid inläsning av YAML expanderas ankare (&name) och alias (*name), inklusive sammanfogningsnyckeln <<, och en fil med flera dokument separerade av --- blir en JSON-array. För att skydda din webbläsare begränsas aliasexpansionen, vilket stoppar så kallade "billion laughs"-dokument. YAML-värden som saknar JSON-motsvarighet konverteras så nära som möjligt: .inf och .nan blir null, och tidsstämplar förblir strängar. Syntaxfel rapporteras med rad och kolumn.
Exempel
Kubernetes-manifest
En Deployment skriven som JSON av ett skript konverteras till den YAML-layout som kubectl-användare förväntar sig, med listor under containers skrivna som - name: web. Värden som "no" förblir citerade så att de fortfarande är strängar.
CI-konfiguration med ankare
En pipeline-fil definierar standardvärden: &defaults och återanvänder dem med <<: *defaults. Att konvertera till JSON visar exakt vilka nycklar varje jobb får efter sammanslagningen.
OpenAPI-specifikation
En OpenAPI-fil underhålls i YAML, men en kodgenerator behöver JSON. Klistra in YAML, välj indrag med 2 blanksteg och ladda ned .json-filen.
Vanliga frågor
Varför skrivs "yes" med citattecken i min YAML?
Enligt YAML 1.1-reglerna, som fortfarande används av PyYAML, Ansible och många andra verktyg, tolkas yes, no, on eller off utan citattecken som booleska värden. Citattecken gör att det förblir en sträng i varje parser. Citattecknen är inte en del av värdet.
Behålls YAML-kommentarer vid konvertering till JSON?
Nej. JSON har ingen kommentarsyntax, så kommentarer tas bort. Att konvertera JSON tillbaka till YAML återställer dem inte.
Vad händer med flera YAML-dokument som separeras med ---?
De konverteras till en JSON-array med ett element per dokument, i ordning. Ett enskilt dokument konverteras direkt till sitt värde.
Vad händer med anpassade taggar som CloudFormations !Ref?
Applikationsspecifika taggar förstås inte. Verktyget visar en varning och konverterar det taggade värdet som ett vanligt värde, så !Ref MyBucket blir strängen "MyBucket" och själva taggen går förlorad.
Integritet
Båda riktningarna körs helt i din webbläsare. Din JSON eller YAML laddas inte upp, lagras inte och ingår inte i någon analys.