Penukar JSON ke YAML
Tukar JSON kepada YAML yang kemas dan mesra manusia untuk Kubernetes, Docker Compose, GitHub Actions atau Ansible, dengan kawalan penuh ke atas inden, gaya dan petikan.
Berjalan dalam pelayar andaTanpa pendaftaranTiada apa dimuat naik
Cara menggunakan JSON ke YAML
- Tampal JSON ke dalam kotak kiri atau buka fail
.json. - YAML muncul di sebelah kanan semasa anda menaip.
- Pilih inden (2 atau 4 ruang) dan gaya: block (satu kunci setiap baris) atau flow (
{a: 1}/[x, y]) bermula dari tahap bersarang tertentu. - Pilih gaya petikan dan tandakan Isih kunci jika anda mahukan susunan mengikut abjad.
- Salin atau muat turun YAML. JSON tidak sah dilaporkan dengan baris, lajur dan punca yang mungkin.
Mengapa tukar JSON ke YAML?
JSON sesuai untuk mesin dan API, tetapi YAML lebih mudah dibaca dan disunting oleh manusia: tiada kurungan kerinting, tiada petikan wajib dan menyokong komen. Kebanyakan alat infrastruktur, termasuk Kubernetes, Helm, Docker Compose, GitHub Actions, GitLab CI dan Ansible, dikonfigurasi dalam YAML, manakala data permulaan anda (output API, kubectl get -o json, state Terraform) selalunya JSON.
Gaya block lwn. flow
Gaya block meletakkan setiap kunci dan item senarai pada barisnya sendiri dan merupakan pilihan lazim untuk fail konfigurasi. Gaya flow menggunakan {} dan [] sebaris, seperti JSON, dan memastikan struktur hujung yang pendek kekal padat. “Flow dari tahap 2” mengekalkan dua tahap teratas dalam gaya block dan menjadikan apa-apa yang lebih dalam sebaris, yang sesuai untuk senarai panjang objek kecil seperti port atau env var.
Petikan yang selamat
Rentetan yang mungkin disalah baca oleh penghurai YAML dipetik secara automatik: nilai seperti 'no', 'on', '1.0', 'null', rentetan yang bermula dengan * atau &, dan rentetan yang mengandungi : . Pilih Sentiasa tunggal atau Sentiasa berganda jika panduan gaya anda memerlukan setiap rentetan dipetik.
Perangkap YAML 1.1 lwn 1.2
Penukar ini mengikut YAML 1.2, spesifikasi semasa. Banyak alat lama (PyYAML, Psych Ruby, sesetengah versi Kubernetes dan Ansible) masih membaca YAML 1.1, yang peraturannya berbeza:
- Masalah Norway: dalam YAML 1.1,
country: nobermaksudfalse, jadi kod negara NorwayNOhilang. Begitu juga denganyes,on,off,ydann. YAML 1.2 hanya menganggaptruedanfalsesebagai boolean. - Nombor oktal:
0755ialah oktal dalam 1.1 tetapi perpuluhan biasa dalam 1.2, yang menggunakan0o755. Petik mod fail untuk keselamatan. - Nombor seksagesimal: dalam 1.1,
22:30boleh dihurai sebagai nombor 1350. Petik masa dan pemetaan port seperti"8080:80".
Arah JSON → YAML memetik rentetan taksa ('no', 'on', 'y') secara automatik, jadi YAML yang dihasilkan dibaca sama dalam kedua-dua versi.
Soalan lazim
Adakah penukaran ini tanpa kehilangan data?
Mengapa sesetengah rentetan dipetik dan yang lain tidak?
'yes', '123' atau rentetan dengan aksara khas. Yang lain dibiarkan biasa supaya mudah dibaca.Bolehkah saya menambah komen pada output?
# comments pada YAML selepas menyalinnya.