CodeKitHub
JSON alati

JSON ↔ YAML pretvarač

Zadnje ažurirano:

Za pretvorbu JSON-a u YAML, objekti postaju uvučeni blokovi key: value, a nizovi postaju stavke liste s prefiksom `-` — obrnuta pretvorba razrješava YAML kratice tipova poput necitiranog true, null ili brojeva natrag u ispravne JSON tipove. Ovaj alat radi tu pretvorbu, u oba smjera, u potpunosti u vašem pregledniku.

Što je ovaj alat?

YAML je format izbora za većinu modernih konfiguracijskih datoteka — Kubernetes manifesti, Docker Compose, GitHub Actions i GitLab CI cjevovodi, Ansible playbook-ovi — jer je čitljiviji od JSON-a za ljude koji ručno uređuju datoteke: navodnici nisu potrebni oko većine ključeva, nema zareza na kraju koje biste mogli pogrešno postaviti, a komentari su podržani. JSON, s druge strane, format je koji većina API-ja i programskih jezika izvorno proizvodi i konzumira.

Ovaj alat premošćuje njih dvoje koristeći js-yaml, široko korištenu JavaScript implementaciju YAML specifikacije, tako da parsiranje i generiranje slijede ista pravila koja bi primijenio alat svjestan YAML-a poput `kubectl` ili CI runner.

Pretvorba JSON-a u YAML pretvara objekte u uvučene blokove key: value, a nizove u stavke liste s prefiksom `-`. Pretvorba YAML-a u JSON radi obrnuto, a također razrješava YAML kratice tipova (poput necitiranog `true`, `null`, ili brojeva) u njihove ispravne JSON tipove.

Zašto ga koristiti?

  • Dvosmjerno — pretvorite JSON u YAML ili YAML u JSON s istog ekrana.
  • Parsiranje i generiranje temeljeno na standardima putem js-yaml, tako da izlaz odgovara onome što stvarni YAML alati (Kubernetes, CI sustavi, Ansible) očekuju.
  • Rukuje ugniježđenim objektima i nizovima na bilo kojoj dubini, pretvarajući između YAML-ove strukture temeljene na uvlačenju i JSON-ovih vitičastih i uglatih zagrada.
  • Ispravno tumači YAML kratice tipova — necitirani true/false, null i numeričke vrijednosti postaju ispravni JSON tipovi umjesto stringova.
  • Kopirajte u međuspremnik ili preuzmite kao .json ili .yaml datoteku.
  • 100% na strani klijenta — ništa što zalijepite se ne šalje nikamo.

Kako ga koristiti

  1. Odaberite smjer: "JSON → YAML" ili "YAML → JSON".
  2. Zalijepite svoje podatke u okvir za unos.
  3. Kliknite "Convert".
  4. Pregledajte rezultat, zatim ga kopirajte ili kliknite "Download" da spremite datoteku.

Primjer

Ulaz

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

Izlaz

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

Primijetite kako niz postaje lista stavki s crticom pod "roles", a boolean ostaje necitiran true umjesto da postane string "true".

Praktični savjeti

  • Pisanje Kubernetes manifesta ili GitHub Actions workflowa: nacrtajte strukturu kao JSON (mnogi editori i AI alati pouzdanije generiraju JSON), zatim pretvorite u YAML za konačnu datoteku.
  • Debagiranje YAML konfiguracije koja se ne ponaša ispravno: pretvorite je u JSON da vidite točno koje su vrijednosti stringovi, brojevi ili booleani — YAML-ova fleksibilna sintaksa može sakriti nepodudaranja tipova koja su očita u JSON-u.
  • Ako vaš JSON sadrži ključeve sa specijalnim znakovima ili koji počinju brojem, js-yaml će ih automatski citirati u YAML izlazu kako bi se ispravno parsirali natrag.

Zašto je prisilna pretvorba tipova najzahtjevniji dio YAML-a

Najveća prednost YAML-a u odnosu na JSON u smislu upotrebljivosti — nepotreba navodnika oko većine vrijednosti — ujedno je i njegov najveći izvor suptilnih grešaka. Klasičan primjer je "Norveški problem": u YAML 1.1 (koji koriste mnogi stariji parseri), necitirana vrijednost `no` tumači se kao boolean `false`, a ne kao string "no", što je u stvarnom svijetu rušilo konfiguracije s državnim kodovima koje su navodile Norvešku. Ovaj alat slijedi YAML 1.2 specifikaciju, koja je suzila skup necitiranih vrijednosti tretiranih kao booleani na samo `true` i `false` (i njihove varijante velikih/malih slova), smanjujući — iako ne u potpunosti uklanjajući — ovu vrstu iznenađenja. Kad niste sigurni kako će se vrijednost tipizirati, eksplicitno citiranje u vašem YAML-u najsigurniji je izbor.

Često postavljana pitanja

Čuvaju li se YAML komentari prilikom pretvorbe u JSON i natrag?

Ne. JSON nema koncept komentara, pa pretvorba YAML-a u JSON odbacuje sve # komentare iz izvora. Ako taj JSON pretvorite natrag u YAML, komentari se neće vratiti — ovo je svojstveno ograničenje formata, a ne greška u alatu.

Kako alat rukuje YAML sidrima i aliasima (& i *)?

Osnovni parser (js-yaml) razrješava sidra i aliase prije proizvodnje JSON-a, pa će se YAML datoteka koja koristi & sidra i * aliase za ponovno korištenje bloka podataka pretvoriti u JSON s tim podacima potpuno proširenim na svakom mjestu gdje se referenciraju.

Zašto je moj YAML broj došao kao string u JSON-u, ili obrnuto?

Ako je vrijednost citirana u YAML izvoru (npr. version: "3.10"), namjerno se tretira kao string — ovo je važno jer necitirani YAML brojevi poput 3.10 mogu izgubiti krajnju nulu kad se parsiraju kao float. Citirajte vrijednost u izvornom YAML-u ako je specifično trebate tretiranu kao tekst.

Mogu li pretvoriti YAML datoteku s više dokumenata (odvojenih s ---)?

Ovaj alat pretvara jedan YAML dokument odjednom. Ako vaša datoteka ima više dokumenata odvojenih --- oznakama, pretvorite jedan dio odjednom, ili uklonite odjeljivače i spojite ih u jedan dokument prvo ako to odgovara vašem slučaju upotrebe.

Šalju li se moji podaci negdje?

Ne. Pretvorba se odvija u potpunosti u vašem pregledniku putem js-yaml biblioteke — ništa se ne šalje na server, što ga čini sigurnim za korištenje sa stvarnim konfiguracijskim datotekama, uključujući one s internim imenima hostova ili infrastrukturnim detaljima.

Povezani alati