JSON ↔ YAML

Konverter JSON ↔ YAML

Konversi dua arah yang dibuat untuk k8s, GitHub Actions, Docker Compose, helm. Pratinjau langsung, output YAML yang idiomatik, semuanya di browser Anda.

js-yaml bagus tetapi menambah ~30 KB ter-minify ke setiap pemuatan halaman. YAML file konfigurasi di dunia nyata hanya menggunakan sebagian kecil dari spesifikasi — pemetaan blok, urutan blok, gaya flow, tipe skalar, literal multi-baris. Kami membuat sendiri persis subset itu (~5 KB), sehingga pemuatan dingin tetap cepat. Jika YAML Anda menggunakan anchor, alias, atau tag kustom, tempel ke pipeline CI yang menggunakan js-yaml sebagai gantinya.

Tiga fitur yang jarang ada di file konfigurasi: (1) anchor dan alias (&name / *name) — digunakan untuk deduplikasi dalam dokumen; (2) tag kustom (!!str / !!float / !!omap) — digunakan untuk menimpa inferensi tipe implisit; (3) file multi-dokumen dengan pemisah ---. Tidak satu pun dari ini muncul dalam file standar k8s, GitHub Actions, Docker Compose, helm, atau ansible. Jika Anda membutuhkannya, gunakan parser YAML lengkap.

Input JSON
Output YAML

Dibuat untuk YAML DevOps di dunia nyata

k8s, GitHub Actions, Docker Compose, helm, ansible — dan beberapa sentuhan kecil yang membuatnya benar-benar menyenangkan untuk digunakan.

Dua arah, langsung

Tempel salah satu format, dapatkan format lainnya secara instan. Output diperbarui pada setiap penekanan tombol — tanpa tombol Konversi. Alihkan arah dengan satu klik dan alat yang sama berjalan secara terbalik.

Subset YAML 1.2 untuk file konfigurasi

Pemetaan blok + flow, urutan blok + flow, skalar (string, angka, boolean, null), skalar blok literal multi-baris (|) dan terlipat (>). Mencakup 99% manifes k8s, GitHub Actions, Docker Compose, GitLab CI, helm values, ansible playbooks.

Output YAML yang idiomatik

JSON → YAML menghasilkan YAML yang akan Anda tulis sendiri: kunci gaya polos (tanpa kutip), string hanya dikutip ketika akan bentrok dengan kata yang dicadangkan (true/false/null/yes/no) atau angka, string multi-baris dirender sebagai skalar blok |, indentasi 2 atau 4 spasi yang dapat dikonfigurasi.

Aman bolak-balik

JSON → YAML → JSON menghasilkan dokumen yang identik byte demi byte. Konversi ke salah satu arah, arah lainnya selalu membalik dengan bersih. Tidak ada tipe yang hilang secara diam-diam atau nilai yang dipaksakan.

Privasi sejak desain

Konfigurasi Anda tidak pernah meninggalkan perangkat. Parser + serializer yang dibuat sendiri berjalan sebagai JavaScript secara lokal. Buka DevTools → Network dan verifikasi nol permintaan keluar.

Kecil + cepat

JavaScript murni, tanpa dependensi js-yaml. Pemuatan dingin di bawah 25 KB ter-gzip. Manifes k8s sebesar 100 KB dikonversi dalam waktu kurang dari 30 ms di laptop biasa.

Cara mengonversi JSON ↔ YAML

Tiga langkah dari konfigurasi mentah ke format yang Anda butuhkan.

  1. 1

    Tempel JSON atau YAML Anda

    Letakkan konfigurasi Anda ke panel Input. Alat ini mendeteksi format yang Anda tempel dari dropdown Arah — balik jika perlu. Konversi berjalan langsung pada setiap penekanan tombol.

  2. 2

    Sesuaikan indentasi dan verifikasi

    Indentasi default adalah 2 spasi (konvensi k8s / GitHub Actions). Beralih ke 4 jika tim Anda menggunakannya. Klik Tukar untuk membalik output kembali ke input — berguna untuk verifikasi bolak-balik (tempel JSON, konversi ke YAML, tukar, konversi kembali, bandingkan dengan aslinya).

  3. 3

    Salin atau unduh

    Tekan ikon salin untuk mengirim output ke clipboard Anda, atau ikon unduh untuk menyimpan sebagai output.yaml atau output.json. Selisih ukuran byte ditampilkan di footer sehingga Anda dapat melihat seberapa kompak representasi YAML.

Dibuat untuk tim DevOps + backend

Empat skenario umum di mana alat browser yang mengutamakan privasi mengalahkan menulis skrip Python sekali pakai.

Bolak-balik manifes Kubernetes

kubectl get deployment my-app -o json → tempel di sini → YAML → edit → apply. Atau: tempel manifes YAML dari dokumen vendor, konversi ke JSON, jalankan melalui jq untuk pemfilteran, konversi kembali ke YAML, commit.

Snippet GitHub Actions / GitLab CI dari postingan blog

Postingan blog menampilkan snippet CI sebagai JSON di tema dokumen mereka. Letakkan, dapatkan YAML, tempel ke .github/workflows/ci.yml. Atau: ambil alur kerja YAML multi-pekerjaan, konversi ke JSON untuk pengeditan terprogram, konversi kembali.

Helm values + Docker Compose

File helm values adalah YAML; beberapa alat templating menginginkan JSON. Tempel values.yaml Anda, dapatkan JSON, jalankan melalui alat Anda, tempel kembali, konversi ke YAML untuk commit. Alur kerja yang sama untuk compose.yaml Docker Compose.

Konfigurasi sensitif yang tidak boleh ke layanan pihak ketiga

Konfigurasi yang berisi kunci API, rahasia, hostname internal, data pelanggan — apa pun yang tidak dapat Anda tempel ke konverter cloud. Alat khusus browser menjaga setiap byte tetap di laptop Anda. Buka DevTools → Network dan verifikasi tidak ada yang keluar.

100% privat — berjalan di browser Anda

Konfigurasi Anda tidak pernah meninggalkan perangkat. Buka DevTools → Network dan Anda akan melihat nol permintaan keluar selama konversi.

  • Parser YAML buatan tangan, serializer YAML, JSON.parse bawaan, dan salin clipboard / unduh semuanya berjalan sebagai JavaScript di mesin Anda — tanpa CDN js-yaml, tanpa API pihak ketiga.
  • Tanpa login, tanpa telemetri pada konten konfigurasi. Kami hanya menggunakan satu cookie untuk status persetujuan cookie dan satu untuk preferensi bahasa.
  • Jika Anda menangani konfigurasi infra sensitif (snippet kubeconfig, manifes rahasia, sertifikat yang ditandatangani), cerita privasi itu penting — tempel dengan percaya diri. Dapat diverifikasi di DevTools.

Panduan terkait

Bacaan pilihan tentang pola konfigurasi YAML, perkakas JSON, dan format file DevOps.

Pertanyaan yang sering diajukan

Mengapa membuat dukungan YAML jika <code>js-yaml</code> sudah ada?

js-yaml bagus tetapi menambah ~30 KB ter-minify ke setiap pemuatan halaman. YAML file konfigurasi di dunia nyata hanya menggunakan sebagian kecil dari spesifikasi — pemetaan blok, urutan blok, gaya flow, tipe skalar, literal multi-baris. Kami membuat sendiri persis subset itu (~5 KB), sehingga pemuatan dingin tetap cepat. Jika YAML Anda menggunakan anchor, alias, atau tag kustom, tempel ke pipeline CI yang menggunakan js-yaml sebagai gantinya.

Fitur YAML apa yang TIDAK didukung?

Tiga fitur yang jarang ada di file konfigurasi: (1) anchor dan alias (&name / *name) — digunakan untuk deduplikasi dalam dokumen; (2) tag kustom (!!str / !!float / !!omap) — digunakan untuk menimpa inferensi tipe implisit; (3) file multi-dokumen dengan pemisah ---. Tidak satu pun dari ini muncul dalam file standar k8s, GitHub Actions, Docker Compose, helm, atau ansible. Jika Anda membutuhkannya, gunakan parser YAML lengkap.

Apakah komentar dipertahankan?

Tidak — komentar dihapus saat parsing. YAML mendukung komentar (#...) tetapi JSON tidak. Bolak-balik YAML melalui JSON menghilangkan informasi komentar secara definisi. Kami menghapus komentar saat parsing daripada mencoba mempertahankannya dengan trik. Jika Anda membutuhkan pengeditan YAML yang mempertahankan komentar, edit YAML secara langsung.

Mengapa angka saya dikonversi menjadi string?

Aturan tipe implisit YAML lebih longgar daripada JSON: 1.2.3 adalah string di YAML (bukan angka, karena memiliki dua titik), dan string versi seperti v1.2 adalah string kecuali dikutip. Kami mengikuti aturan tipe implisit YAML 1.2: hanya digit yang cocok dengan ^-?\d+(\.\d+)?([eE][-+]?\d+)?$ menjadi angka; selain itu tetap string. Jika Anda membutuhkan penanganan numerik yang tepat, kutip nilainya di YAML atau gunakan JSON secara langsung.

Apakah ada yang dikirim ke server Anda?

Tidak. Parser YAML, serializer, parser JSON, dan salin clipboard semuanya berjalan dalam JavaScript di perangkat Anda. Buka DevTools → Network dan Anda akan melihat nol permintaan keluar selama konversi. Tempel manifes k8s produksi, konfigurasi CI internal, helm values yang penuh rahasia — tidak ada yang meninggalkan laptop Anda.