CodeKitHub
JSON-verktyg

JSON ↔ YAML-konverterare

Senast uppdaterad:

För att konvertera JSON till YAML blir objekt indenterade nyckel: värde-block och arrayer blir `-`-inledda listposter — den omvända konverteringen löser upp YAML:s typgenvägar som ociterat true, null eller tal tillbaka till korrekta JSON-typer. Det här verktyget gör den konverteringen, i båda riktningarna, helt i din webbläsare.

Vad är detta verktyg?

YAML är förstahandsvalet för de flesta moderna konfigurationsfiler — Kubernetes-manifest, Docker Compose, GitHub Actions- och GitLab CI-pipelines, Ansible-playbooks — eftersom det är mer läsbart än JSON för människor som redigerar filer för hand: inga citattecken krävs runt de flesta nycklar, inga avslutande kommatecken att göra fel på, och kommentarer stöds. JSON, å andra sidan, är vad de flesta API:er och programmeringsspråk producerar och konsumerar naturligt.

Det här verktyget överbryggar de två med js-yaml, en allmänt använd JavaScript-implementation av YAML-specifikationen, så tolkning och generering följer samma regler som ett YAML-medvetet verktyg som `kubectl` eller en CI-körning skulle tillämpa.

Att konvertera JSON till YAML gör om objekt till indenterade nyckel: värde-block och arrayer till `-`-inledda listposter. Att konvertera YAML till JSON gör motsatsen, och löser också upp YAML-specifika typgenvägar (som ociterat `true`, `null`, eller tal) till sina korrekta JSON-typer.

Varför använda det?

  • Dubbelriktad — konvertera JSON till YAML eller YAML till JSON från samma skärm.
  • Standardbaserad tolkning och generering via js-yaml, så utdatan matchar vad riktiga YAML-verktyg (Kubernetes, CI-system, Ansible) förväntar sig.
  • Hanterar nästlade objekt och arrayer på valfritt djup, och konverterar mellan YAML:s indenteringsbaserade struktur och JSON:s klamrar och hakparenteser.
  • Tolkar korrekt YAML:s typgenvägar — ociterat true/false, null och numeriska värden blir sina korrekta JSON-typer istället för strängar.
  • Kopiera till urklipp eller ladda ner som en .json- eller .yaml-fil.
  • 100% klientsidan — inget du klistrar in laddas upp någonstans.

Så använder du det

  1. Välj en riktning: "JSON → YAML" eller "YAML → JSON".
  2. Klistra in din data i inmatningsrutan.
  3. Klicka på "Konvertera".
  4. Granska resultatet, kopiera det sedan eller klicka på "Ladda ner" för att spara en fil.

Exempel

Inmatning

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

Resultat

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

Lägg märke till hur arrayen blir en lista av strecksatta poster under "roles", och booleanen förblir ociterat true istället för att bli strängen "true".

Praktiska tips

  • Skriver du ett Kubernetes-manifest eller ett GitHub Actions-arbetsflöde: skissa strukturen som JSON (många editorer och AI-verktyg genererar JSON mer tillförlitligt), konvertera sedan till YAML för slutfilen.
  • Felsöker du en YAML-konfiguration som beter sig illa: konvertera den till JSON för att se exakt vilka värden som är strängar, tal eller booleaner — YAML:s flexibla syntax kan dölja typmissmatchningar som är uppenbara i JSON.
  • Om din JSON innehåller nycklar med specialtecken eller som börjar med en siffra kommer js-yaml automatiskt citera dem i YAML-utdatan så de tolkas korrekt tillbaka.

Varför typkonvertering är den knivigaste delen av YAML

YAML:s största användbarhetsfördel över JSON — att inte kräva citattecken runt de flesta värden — är också dess största källa till subtila buggar. Det klassiska exemplet är "Norge-problemet": i YAML 1.1 (som används av många äldre tolkar) tolkas ett ociterat värde av `no` som booleanen `false`, inte strängen "no", vilket har förstört verkliga landskodskonfigurationer som listar Norge. Det här verktyget följer YAML 1.2-specifikationen, som smalnade av mängden ociterade värden som behandlas som booleaner till bara `true` och `false` (och deras skiftlägesvarianter), vilket minskar — men inte eliminerar — den här typen av överraskning. Vid osäkerhet om hur ett värde kommer typas är det säkraste valet att citera det explicit i din YAML.

Vanliga frågor

Bevaras YAML-kommentarer vid konvertering till JSON och tillbaka?

Nej. JSON har inget begrepp om kommentarer, så konvertering av YAML till JSON kastar bort eventuella #-kommentarer i källan. Om du konverterar den JSON:en tillbaka till YAML kommer kommentarerna inte tillbaka — det här är en inneboende begränsning i formatet, inte en bugg i verktyget.

Hur hanterar verktyget YAML-ankare och alias (& och *)?

Den underliggande tolken (js-yaml) löser ankare och alias innan JSON produceras, så en YAML-fil som använder &-ankare och *-alias för att återanvända ett dataavsnitt kommer konverteras till JSON med den datan fullt expanderad på varje plats den refereras.

Varför kom mitt YAML-tal fram som en sträng i JSON, eller tvärtom?

Om ett värde är citerat i YAML-källan (t.ex. version: "3.10"), behandlas det medvetet som en sträng — det spelar roll eftersom ociterade YAML-tal som 3.10 kan tappa den avslutande nollan vid tolkning som flyttal. Citera ett värde i käll-YAML:en om du specifikt behöver det behandlat som text.

Kan jag konvertera en YAML-fil med flera dokument (separerade med ---)?

Det här verktyget konverterar ett enda YAML-dokument åt gången. Om din fil har flera dokument separerade med ---markörer, konvertera en sektion åt gången, eller ta bort separatorerna och slå ihop dem till ett dokument först om det passar ditt användningsfall.

Laddas min data upp någonstans?

Nej. Konverteringen körs helt i din webbläsare via js-yaml-biblioteket — inget skickas till en server, vilket gör det säkert att använda med riktiga konfigurationsfiler, inklusive sådana med interna värdnamn eller infrastrukturdetaljer.

Relaterade verktyg