YAML till JSON-konverterare

Klistra in YAML (Kubernetes-manifest, Docker Compose, CI-konfigurationer) och få ren JSON direkt. Fel visar exakt rad med en markör.

Körs i din webbläsareIngen registreringInget laddas upp

JSON-utdata

Så använder du YAML till JSON

  1. Klistra in YAML i vänster ruta eller öppna en .yaml/.yml-fil.
  2. JSON visas till höger medan du skriver. Välj 2 mellanslag, 4 mellanslag eller tabbar för utdata.
  3. Kryssa i Sortera nycklar för att ordna nycklarna alfabetiskt. Det underlättar när du jämför konfigurationer.
  4. Om YAML-koden är ogiltig visar statusfältet rad och kolumn, och de felaktiga raderna visas under den med en ^-markör.
  5. Kopiera eller ladda ner JSON-koden, eller tryck på Byt för att konvertera tillbaka till YAML.

Hur YAML motsvaras i JSON

JSON är en delmängd av YAML 1.2, så varje YAML-mappning blir ett JSON-objekt, varje sekvens blir en array och skalärer blir strängar, tal, booleska värden eller null. Funktioner som bara finns i YAML hanteras vid konverteringen:

  • Kommentarer (# …) tas bort, eftersom JSON saknar kommentarer.
  • Ankare och alias (&base, *base, <<: *base) expanderas till fullständiga kopior.
  • Tidsstämplar som 2024-01-02 blir ISO 8601-strängar.
  • Flerradiga strängar (| literal- och > folded-block) blir vanliga strängar med \n-escapes.

YAML med flera dokument

En enda fil kan innehålla flera YAML-dokument åtskilda av ---, vilket är vanligt i Kubernetes-manifest. JSON har ingen motsvarighet, så konverteraren returnerar en JSON-array med ett element per dokument och talar om det i statusfältet. En ensam avslutande --- ignoreras.

Fallgropar mellan YAML 1.1 och 1.2

Konverteraren följer YAML 1.2, den aktuella specifikationen. Många äldre verktyg (PyYAML, Rubys Psych, vissa versioner av Kubernetes och Ansible) läser fortfarande YAML 1.1, där reglerna skiljer sig:

  • Norgeproblemet: i YAML 1.1 betyder country: no false, så Norges landskod NO försvinner. Detsamma gäller yes, on, off, y och n. YAML 1.2 behandlar bara true och false som booleska värden.
  • Oktala tal: 0755 är oktalt i 1.1 men ett vanligt decimaltal i 1.2, som använder 0o755. Citera filrättigheter för säkerhets skull.
  • Sexagesimala tal: i 1.1 kan 22:30 tolkas som talet 1350. Citera tider och portmappningar som "8080:80".

Riktningen JSON → YAML citerar tvetydiga strängar ('no', 'on', 'y') automatiskt, så den YAML som skapas läses likadant i båda versionerna.

Vanliga frågor

Laddas min YAML upp någonstans?
Nej. Tolkningen sker i din webbläsare med open source-biblioteket js-yaml. Konfigurationer med hemligheter eller interna värdnamn lämnar aldrig din dator.
Varför misslyckas min YAML med ”bad indentation”?
Nästling i YAML bestäms av mellanslag, och tabbar är inte tillåtna för indentering. Se till att syskonnycklar står exakt i linje och att listobjekt (-) är konsekvent indenterade under sin föräldernyckel.
Vad händer med YAML-kommentarer?
De tas bort. JSON saknar kommentarssyntax, så kommentarer kan inte föras över. De återställs inte om du konverterar tillbaka till YAML.
Varför förblev <code>no</code> en sträng?
Verktyget följer YAML 1.2, där bara true/false är booleska värden. Äldre YAML 1.1-parsers gör om no, yes, on och off till booleska värden (”Norgeproblemet”).
Kan jag konvertera ett Kubernetes-manifest med flera resurser?
Ja. Varje resurs som avgränsas med --- blir ett element i den utgående JSON-arrayen, redo för jq eller kubectl apply -f -, som också accepterar JSON-listor.

Relaterade verktyg