YAML to JSON Converter

Mag-paste ng YAML (Kubernetes manifest, Docker Compose, CI config) at makakuha agad ng malinis na JSON. Ipinapakita ng mga error ang eksaktong linya na may pointer.

Tumatakbo sa browser moWalang sign-upWalang ina-upload

JSON output

Paano gamitin ang YAML to JSON

  1. I-paste ang YAML sa kaliwang box o magbukas ng .yaml/.yml na file.
  2. Lumalabas ang JSON sa kanan habang nagta-type ka. Pumili ng 2 space, 4 space o tab para sa output.
  3. I-tick ang Ayusin ang mga key para ayusin nang alpabetikal ang mga key. Nakakatulong ito kapag nagkukumpara ng mga config.
  4. Kapag invalid ang YAML, ipinapakita ng status bar ang linya at column, at lumalabas sa ibaba nito ang mga may-problemang linya na may ^ na marker.
  5. Kopyahin o i-download ang JSON, o pindutin ang Pagpalitin para i-convert ito pabalik sa YAML.

Paano nagiging JSON ang YAML

Subset ng YAML 1.2 ang JSON, kaya nagiging JSON object ang bawat YAML mapping, nagiging array ang bawat sequence, at nagiging string, number, boolean o null ang mga scalar. Nireresolba habang nagko-convert ang mga feature na sa YAML lang mayroon:

  • Mga comment (# …) ay inaalis, dahil walang comment ang JSON.
  • Mga anchor at alias (&base, *base, <<: *base) ay pinalalawak sa buong kopya.
  • Mga timestamp gaya ng 2024-01-02 ay nagiging ISO 8601 na string.
  • Mga multi-line na string (| literal at > folded block) ay nagiging ordinaryong string na may \n escape.

Multi-document na YAML

Puwedeng maglaman ang iisang file ng ilang YAML document na pinaghihiwalay ng ---, gaya ng karaniwan sa mga Kubernetes manifest. Walang katumbas nito ang JSON, kaya nagbabalik ang converter ng JSON array na may isang element bawat document at sinasabi ito sa status bar. Hindi pinapansin ang nag-iisang --- sa dulo.

Mga patibong ng YAML 1.1 vs 1.2

Sinusunod ng converter na ito ang YAML 1.2, ang kasalukuyang spec. Maraming lumang tool (PyYAML, Psych ng Ruby, ilang bersyon ng Kubernetes at Ansible) ang nagbabasa pa rin ng YAML 1.1, kung saan iba ang mga patakaran:

  • Ang Norway problem: sa YAML 1.1, false ang ibig sabihin ng country: no, kaya nawawala ang country code ng Norway na NO. Ganoon din sa yes, on, off, y at n. Sa YAML 1.2, true at false lang ang itinuturing na boolean.
  • Mga octal number: octal ang 0755 sa 1.1 pero ordinaryong decimal sa 1.2, na gumagamit ng 0o755. Lagyan ng quote ang mga file mode para ligtas.
  • Mga sexagesimal number: sa 1.1, puwedeng ma-parse ang 22:30 bilang number na 1350. Lagyan ng quote ang mga oras at port mapping gaya ng "8080:80".

Awtomatikong nilalagyan ng quote ng direksyong JSON → YAML ang malalabong string ('no', 'on', 'y'), kaya pareho ang basa sa YAML na ginagawa nito sa parehong bersyon.

Mga madalas itanong

Ina-upload ba kahit saan ang YAML ko?
Hindi. Nangyayari ang pag-parse sa iyong browser gamit ang open-source na js-yaml library. Hindi kailanman umaalis sa iyong computer ang mga config na may secret o internal na hostname.
Bakit pumapalya ang YAML ko na may “bad indentation”?
Dinedepina ng mga space ang nesting ng YAML, at hindi pinapayagan ang tab para sa indentation. Tiyaking eksaktong magkahanay ang magkakapatid na key at pare-pareho ang indent ng mga list item (-) sa ilalim ng parent key nila.
Ano ang nangyayari sa mga YAML comment?
Inaalis ang mga ito. Walang comment syntax ang JSON, kaya hindi madadala ang mga comment. Hindi rin maibabalik ang mga ito kapag kino-convert pabalik sa YAML.
Bakit nanatiling string ang <code>no</code>?
Sinusunod ng tool na ito ang YAML 1.2, kung saan true/false lang ang boolean. Gagawing boolean ng mga lumang YAML 1.1 parser ang no, yes, on at off (ang “Norway problem”).
Puwede ko bang i-convert ang Kubernetes manifest na may ilang resource?
Oo. Nagiging isang element ng output na JSON array ang bawat resource na pinaghihiwalay ng ---, handa para sa jq o kubectl apply -f -, na tumatanggap din ng JSON list.

Mga kaugnay na tool