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

Output JSON

Cara menggunakan YAML ke JSON

  1. Tempel YAML ke kotak kiri atau buka file .yaml/.yml.
  2. JSON muncul di kanan saat Anda mengetik. Pilih 2 spasi, 4 spasi, atau tab untuk output.
  3. Centang Urutkan key untuk mengurutkan key secara alfabetis. Ini membantu saat membandingkan konfigurasi.
  4. Jika YAML tidak valid, status bar menampilkan baris dan kolom, dan baris yang bermasalah muncul di bawahnya dengan penanda ^.
  5. 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-02 menjadi 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: no berarti false, sehingga kode negara Norwegia NO hilang. Hal yang sama berlaku untuk yes, on, off, y dan n. YAML 1.2 hanya menganggap true dan false sebagai boolean.
  • Bilangan oktal: 0755 adalah oktal di 1.1 tetapi desimal biasa di 1.2, yang memakai 0o755. Kutip mode file agar aman.
  • Bilangan seksagesimal: di 1.1, 22:30 bisa 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?
Tidak. Parsing dilakukan di browser Anda dengan library open source js-yaml. Konfigurasi yang berisi secret atau hostname internal tidak pernah meninggalkan mesin Anda.
Mengapa YAML saya gagal dengan “bad indentation”?
Struktur bersarang YAML ditentukan oleh spasi, dan tab tidak boleh dipakai untuk indentasi. Pastikan key yang setingkat sejajar persis dan item daftar (-) diindentasi konsisten di bawah key induknya.
Apa yang terjadi pada komentar YAML?
Komentar dihapus. JSON tidak memiliki sintaks komentar, jadi komentar tidak bisa dibawa. Mengonversi kembali ke YAML tidak akan memulihkannya.
Mengapa <code>no</code> tetap menjadi string?
Tool ini mengikuti YAML 1.2, di mana hanya 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?
Bisa. Setiap resource yang dipisahkan --- menjadi satu elemen array JSON output, siap untuk jq atau kubectl apply -f -, yang juga menerima daftar JSON.

Tools terkait