Apakah alat ini?
YAML ialah format pilihan bagi kebanyakan fail konfigurasi moden — manifest Kubernetes, Docker Compose, aliran kerja GitHub Actions dan GitLab CI, playbook Ansible — kerana ia lebih mudah dibaca berbanding JSON bagi manusia yang mengedit fail secara manual: tiada tanda petik diperlukan untuk kebanyakan kunci, tiada koma berlebihan yang boleh tersalah, dan komen disokong. JSON pula ialah apa yang kebanyakan API dan bahasa pengaturcaraan hasilkan dan gunakan secara asli.
Alat ini menghubungkan kedua-duanya menggunakan js-yaml, satu pelaksanaan JavaScript yang meluas digunakan bagi spesifikasi YAML, jadi penghuraian dan penjanaan mengikut peraturan yang sama seperti alat yang faham YAML seperti `kubectl` atau pelari CI akan gunakan.
Menukar JSON ke YAML menjadikan objek blok key: value berindent dan array item senarai berawalan `-`. Menukar YAML ke JSON melakukan sebaliknya, dan juga menyelesaikan jalan pintas jenis khusus YAML (seperti `true`, `null`, atau nombor tanpa petikan) kepada jenis JSON yang betul.
Kenapa guna alat ini?
- Dwi-arah — tukar JSON ke YAML atau YAML ke JSON dari skrin yang sama.
- Penghuraian dan penjanaan berasaskan piawaian melalui js-yaml, jadi output sepadan dengan apa yang alat YAML sebenar (Kubernetes, sistem CI, Ansible) jangkakan.
- Mengendalikan objek dan array bersarang pada sebarang kedalaman, menukar antara struktur berasaskan indentasi YAML dan pendakap serta kurungan siku JSON.
- Mentafsir jalan pintas jenis YAML dengan betul — true/false tanpa petikan, null, dan nilai berangka menjadi jenis JSON yang betul bukannya string.
- Salin ke papan klip atau muat turun sebagai fail .json atau .yaml.
- 100% sisi klien — apa yang anda tampal tidak dimuat naik ke mana-mana.
Cara menggunakannya
- Pilih arah: "JSON → YAML" atau "YAML → JSON".
- Tampal data anda ke dalam kotak input.
- Klik "Convert".
- Semak hasilnya, kemudian salin atau klik "Download" untuk simpan sebagai fail.
Contoh
Input
{"name":"Alice","roles":["admin","editor"],"active":true}Hasil
name: Alice
roles:
- admin
- editor
active: true
Perhatikan bagaimana array menjadi senarai item bertanda sengkang di bawah "roles", dan boolean kekal true tanpa petikan bukannya menjadi string "true".
Tip praktikal
- Menulis manifest Kubernetes atau aliran kerja GitHub Actions: rangka struktur sebagai JSON dahulu (banyak editor dan alat AI menjana JSON dengan lebih boleh dipercayai), kemudian tukar ke YAML untuk fail akhir.
- Menyahpepijat konfigurasi YAML yang bermasalah: tukar ke JSON untuk lihat dengan tepat nilai mana yang string, nombor, atau boolean — sintaks fleksibel YAML boleh menyembunyikan ketidakpadanan jenis yang jelas kelihatan dalam JSON.
- Jika JSON anda mengandungi kunci dengan aksara khas atau yang bermula dengan nombor, js-yaml akan memetiknya secara automatik dalam output YAML supaya ia boleh dihurai semula dengan betul.
Kenapa pemaksaan jenis adalah bahagian paling rumit dalam YAML
Kelebihan kebolehgunaan terbesar YAML berbanding JSON — tidak memerlukan petikan untuk kebanyakan nilai — juga merupakan punca utama pepijat halus. Contoh klasiknya ialah "masalah Norway": dalam YAML 1.1 (digunakan oleh banyak penghurai lama), nilai tanpa petikan `no` ditafsir sebagai boolean `false`, bukan string "no", yang telah merosakkan konfigurasi kod negara sebenar yang menyenaraikan Norway. Alat ini mengikut spesifikasi YAML 1.2, yang mengecilkan set nilai tanpa petikan yang dianggap boolean kepada hanya `true` dan `false` (dan variasi hurufnya), mengurangkan — walaupun tidak menghapuskan — jenis kejutan ini. Jika anda ragu-ragu tentang bagaimana nilai akan ditaipkan, memetik secara eksplisit dalam YAML anda adalah pilihan paling selamat.
Soalan lazim
Adakah komen YAML dikekalkan semasa menukar ke JSON dan kembali?
Tidak. JSON tiada konsep komen, jadi menukar YAML ke JSON membuang mana-mana komen # dalam sumber. Jika anda tukar JSON itu kembali ke YAML, komen tidak akan muncul semula — ini adalah had semula jadi format tersebut, bukan pepijat pada alat ini.
Bagaimana alat ini mengendalikan anchor dan alias YAML (& dan *)?
Penghurai asas (js-yaml) menyelesaikan anchor dan alias sebelum menghasilkan JSON, jadi fail YAML yang menggunakan anchor & dan alias * untuk guna semula blok data akan ditukar ke JSON dengan data itu dikembangkan sepenuhnya di setiap tempat ia dirujuk.
Kenapa nombor YAML saya keluar sebagai string dalam JSON, atau sebaliknya?
Jika nilai dipetik dalam sumber YAML (contohnya version: "3.10"), ia dianggap sebagai string dengan sengaja — ini penting kerana nombor YAML tanpa petikan seperti 3.10 boleh hilang sifar di belakang apabila dihurai sebagai float. Petik nilai dalam YAML sumber jika anda khusus mahu ia dianggap sebagai teks.
Bolehkah saya tukar fail YAML dengan berbilang dokumen (dipisahkan oleh ---)?
Alat ini menukar satu dokumen YAML pada satu masa. Jika fail anda mempunyai berbilang dokumen dipisahkan oleh penanda ---, tukar satu bahagian pada satu masa, atau buang pemisah dan gabungkan menjadi satu dokumen dahulu jika sesuai dengan kes penggunaan anda.
Adakah data saya dimuat naik ke mana-mana?
Tidak. Penukaran berjalan sepenuhnya dalam pelayar anda melalui pustaka js-yaml — tiada apa yang dihantar ke pelayan, yang menjadikannya selamat digunakan dengan fail konfigurasi sebenar, termasuk yang mempunyai nama hos dalaman atau butiran infrastruktur.