Penukar YAML ke JSON

Tampal YAML (manifest Kubernetes, Docker Compose, konfigurasi CI) dan dapatkan JSON yang kemas serta-merta. Ralat menunjukkan baris yang tepat dengan penunjuk.

Berjalan dalam pelayar andaTanpa pendaftaranTiada apa dimuat naik

Output JSON

Cara menggunakan YAML ke JSON

  1. Tampal YAML ke dalam kotak kiri atau buka fail .yaml/.yml.
  2. JSON muncul di sebelah kanan semasa anda menaip. Pilih 2 ruang, 4 ruang atau tab untuk output.
  3. Tandakan Isih kunci untuk menyusun kunci mengikut abjad. Ini membantu semasa membandingkan konfigurasi.
  4. Jika YAML tidak sah, bar status menunjukkan baris dan lajur, dan baris yang bermasalah muncul di bawahnya dengan penanda ^.
  5. Salin atau muat turun JSON, atau tekan Tukar untuk menukarnya kembali ke YAML.

Cara YAML dipetakan ke JSON

JSON ialah subset YAML 1.2, jadi setiap mapping YAML menjadi objek JSON, setiap sequence menjadi array, dan skalar menjadi rentetan, nombor, boolean atau null. Ciri khusus YAML diselesaikan semasa penukaran:

  • Komen (# …) dibuang, kerana JSON tiada komen.
  • Anchor dan alias (&base, *base, <<: *base) dikembangkan menjadi salinan penuh.
  • Timestamp seperti 2024-01-02 menjadi rentetan ISO 8601.
  • Rentetan berbilang baris (blok literal | dan folded >) menjadi rentetan biasa dengan escape \n.

YAML berbilang dokumen

Satu fail boleh memegang beberapa dokumen YAML yang dipisahkan oleh ---, seperti lazim dalam manifest Kubernetes. JSON tiada padanannya, jadi penukar memulangkan array JSON dengan satu elemen bagi setiap dokumen dan menyatakannya dalam bar status. --- tunggal di hujung diabaikan.

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: no bermaksud false, jadi kod negara Norway NO hilang. Begitu juga dengan yes, on, off, y dan n. YAML 1.2 hanya menganggap true dan false sebagai boolean.
  • Nombor oktal: 0755 ialah oktal dalam 1.1 tetapi perpuluhan biasa dalam 1.2, yang menggunakan 0o755. Petik mod fail untuk keselamatan.
  • Nombor seksagesimal: dalam 1.1, 22:30 boleh 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 YAML saya dimuat naik ke mana-mana?
Tidak. Penghuraian berlaku dalam pelayar anda dengan pustaka sumber terbuka js-yaml. Konfigurasi yang mengandungi rahsia atau nama hos dalaman tidak pernah meninggalkan mesin anda.
Mengapa YAML saya gagal dengan “bad indentation”?
Struktur bersarang YAML ditakrifkan oleh ruang, dan tab tidak dibenarkan untuk inden. Pastikan kunci yang setara sejajar dengan tepat dan item senarai (-) diinden secara konsisten di bawah kunci induknya.
Apa yang berlaku kepada komen YAML?
Ia dibuang. JSON tiada sintaks komen, jadi komen tidak boleh dibawa bersama. Menukar kembali ke YAML tidak akan memulihkannya.
Mengapa <code>no</code> kekal sebagai rentetan?
Alat ini mengikut YAML 1.2, di mana hanya true/false ialah boolean. Penghurai YAML 1.1 yang lebih lama akan menukar no, yes, on dan off menjadi boolean (“masalah Norway”).
Bolehkah saya menukar manifest Kubernetes dengan beberapa sumber?
Ya. Setiap sumber yang dipisahkan oleh --- menjadi satu elemen dalam array JSON output, sedia untuk jq atau kubectl apply -f -, yang juga menerima senarai JSON.

Alat berkaitan