Konverter YAML ke JSON
Tempel YAML (manifest Kubernetes, Docker Compose, konfigurasi CI) dan dapatkan JSON yang rapi seketika. Error menunjukkan baris yang tepat dengan penunjuk.
Berjalan di browser AndaTanpa daftarTidak ada yang diunggah
Cara menggunakan YAML ke JSON
- Tempel YAML ke kotak kiri atau buka file
.yaml/.yml. - JSON muncul di kanan saat Anda mengetik. Pilih 2 spasi, 4 spasi, atau tab untuk output.
- Centang Urutkan key untuk mengurutkan key secara alfabetis. Ini membantu saat membandingkan konfigurasi.
- Jika YAML tidak valid, status bar menampilkan baris dan kolom, dan baris yang bermasalah muncul di bawahnya dengan penanda
^. - Salin atau unduh JSON-nya, atau tekan Tukar untuk mengonversinya kembali ke YAML.
Cara YAML dipetakan ke JSON
JSON adalah subset dari YAML 1.2, sehingga setiap mapping YAML menjadi objek JSON, setiap sequence menjadi array, dan scalar menjadi string, angka, boolean, atau null. Fitur khusus YAML diselesaikan saat konversi:
- Komentar (
# …) dibuang, karena JSON tidak memiliki komentar. - Anchor dan alias (
&base,*base,<<: *base) diperluas menjadi salinan utuh. - Timestamp seperti
2024-01-02menjadi string ISO 8601. - String multi-baris (blok literal
|dan folded>) menjadi string biasa dengan escape\n.
YAML multi-dokumen
Satu file bisa berisi beberapa dokumen YAML yang dipisahkan ---, seperti yang umum di manifest Kubernetes. JSON tidak memiliki padanannya, jadi konverter mengembalikan array JSON dengan satu elemen per dokumen dan menyebutkannya di status bar. --- tunggal di akhir diabaikan.
Jebakan YAML 1.1 vs 1.2
Konverter ini mengikuti YAML 1.2, spesifikasi terbaru. Banyak tool lama (PyYAML, Psych di Ruby, beberapa versi Kubernetes dan Ansible) masih membaca YAML 1.1, yang aturannya berbeda:
- Masalah Norwegia: di YAML 1.1,
country: noberartifalse, sehingga kode negara NorwegiaNOhilang. Hal yang sama berlaku untukyes,on,off,ydann. YAML 1.2 hanya menganggaptruedanfalsesebagai boolean. - Bilangan oktal:
0755adalah oktal di 1.1 tetapi desimal biasa di 1.2, yang memakai0o755. Kutip mode file agar aman. - Bilangan seksagesimal: di 1.1,
22:30bisa di-parse sebagai angka 1350. Kutip waktu dan pemetaan port seperti"8080:80".
Arah JSON → YAML otomatis mengutip string yang ambigu ('no', 'on', 'y'), sehingga YAML yang dihasilkan terbaca sama di kedua versi.
Pertanyaan yang sering diajukan
Apakah YAML saya diunggah ke suatu tempat?
Mengapa YAML saya gagal dengan “bad indentation”?
-) diindentasi konsisten di bawah key induknya.Apa yang terjadi pada komentar YAML?
Mengapa <code>no</code> tetap menjadi string?
true/false yang merupakan boolean. Parser YAML 1.1 yang lebih lama akan mengubah no, yes, on dan off menjadi boolean (“masalah Norwegia”).Bisakah saya mengonversi manifest Kubernetes yang berisi beberapa resource?
--- menjadi satu elemen array JSON output, siap untuk jq atau kubectl apply -f -, yang juga menerima daftar JSON.