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

Output JSON

Cara menggunakan JSON ke YAML

  1. Tampal JSON ke dalam kotak kiri atau buka fail .json.
  2. YAML muncul di sebelah kanan semasa anda menaip.
  3. Pilih inden (2 atau 4 ruang) dan gaya: block (satu kunci setiap baris) atau flow ({a: 1}/[x, y]) bermula dari tahap bersarang tertentu.
  4. Pilih gaya petikan dan tandakan Isih kunci jika anda mahukan susunan mengikut abjad.
  5. 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: 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 penukaran ini tanpa kehilangan data?
Ya. Setiap dokumen JSON ialah YAML 1.2 yang sah, dan YAML yang dijana dihurai semula kepada data yang sama sepenuhnya. Anda boleh menyemaknya dengan menekan Tukar.
Mengapa sesetengah rentetan dipetik dan yang lain tidak?
Dengan Hanya bila perlu, petikan ditambah hanya di tempat nilai tanpa petikan akan berubah makna, contohnya 'yes', '123' atau rentetan dengan aksara khas. Yang lain dibiarkan biasa supaya mudah dibaca.
Bolehkah saya menambah komen pada output?
JSON tiada komen, jadi tiada apa untuk ditukar, tetapi anda boleh menambah # comments pada YAML selepas menyalinnya.
Adakah susunan kunci berubah?
Tidak. Kunci mengekalkan susunan JSON melainkan anda menandakan Isih kunci.
Adakah data saya peribadi?
Ya. Penukar berjalan dalam pelayar anda dan tidak membuat sebarang permintaan rangkaian dengan input anda.

Alat berkaitan