Konversi JSON ke YAML dan YAML ke JSON di browser Anda
JSON dan YAML menggambarkan jenis data yang sama — map bersarang, daftar, string, angka, dan boolean — tetapi terlihat sangat berbeda dan digunakan di tempat yang berbeda. Jika Anda menghabiskan waktu di dekat API, file container, atau pipeline CI, Anda akhirnya perlu mengubah satu menjadi yang lain. Halaman ini melakukan konversi tersebut ke kedua arah, sepenuhnya di dalam browser Anda, sehingga data yang Anda tempel tidak pernah meninggalkan mesin Anda.

Apa itu JSON dan di mana ia digunakan
JSON (JavaScript Object Notation) adalah format kurung-kurawal yang ketat, dibangun untuk mesin terlebih dahulu. Setiap objek dibungkus dalam {}, setiap array dalam [], kunci dan nilai string dikutip ganda, dan item dipisahkan oleh koma. Ini adalah format wire default untuk REST dan GraphQL API, isi sebagian besar webhook, bentuk dokumen NoSQL, dan hal yang dikembalikan panggilan fetch Anda. Hampir setiap bahasa menguraikannya secara bawaan, itulah tepatnya mengapa ia memenangkan lapisan API: JSON.parse di JavaScript, json di pustaka standar Python, dan padanannya di mana-mana. Trade-off-nya adalah JSON verbose untuk ditulis tangan dan melarang komentar, sehingga ini adalah format yang buruk untuk file yang diedit manusia sepanjang hari.
Apa itu YAML dan di mana ia digunakan
YAML (YAML Ain't Markup Language) dirancang untuk prioritas yang berlawanan: manusia terlebih dahulu. Format ini melepaskan kurung kurawal dan tanda kutip, menggunakan indentasi untuk mengekspresikan penumpukan, dan memungkinkan Anda menulis komentar dengan #. Keterbacaan itulah mengapa ia menjadi lingua franca konfigurasi. File Docker Compose, manifes Kubernetes, alur kerja GitHub Actions dan GitLab CI, playbook Ansible, dan banyak file konfigurasi aplikasi semuanya YAML. Dokumen YAML yang khas jauh lebih pendek dari JSON yang setara dan jauh lebih mudah di-diff dalam pull request. Biaya dari keeleganan itu adalah kerapuhan, di mana konversi menjadi menarik.
Perbedaan utama yang penting untuk konversi
Tiga perbedaan mendorong hampir setiap keputusan konversi. Pertama, spasi putih signifikan dalam YAML dan tidak berarti dalam JSON. YAML menggunakan spasi — bukan tab — untuk menunjukkan struktur, sehingga satu spasi yang salah sejajar dapat diam-diam mengubah makna dokumen. JSON tidak peduli tentang indentasi sama sekali. Kedua, YAML mendukung komentar dan JSON tidak. Komentar # apa pun dalam YAML hilang begitu saja saat Anda menghasilkan JSON, karena tidak ada tempat untuk meletakkannya. Ketiga, YAML memiliki pengetikan implisit yang lebih kaya. YAML dengan senang hati membaca tanggal, timestamp, dan null dalam beberapa ejaan, dan menebak tipe dari nilai yang tidak dikutip. JSON memiliki kumpulan tipe yang kecil dan eksplisit tanpa ambiguitas. Perhatikan juga bahwa JSON secara teknis adalah subset dari YAML 1.2, itulah mengapa JSON yang valid biasanya diurai dengan bersih sebagai YAML, tetapi kebalikannya tidak dijamin.

Jebakan konversi yang perlu diwaspadai
Perjalanan bolak-balik tidak selalu tanpa kerugian, dan ada baiknya mengetahui di mana hal-hal bisa rusak:
- Masalah Norway. Menurut aturan YAML 1.1,
NOyang tidak dikutip diurai sebagai booleanfalse, danyes,on, sertaoffjuga menjadi boolean. Kode negara atau label sakelar bisa berubah menjaditrue/falsesebelum Anda menyadarinya. Kutip nilai yang Anda maksudkan sebagai string. - Koersi angka. Versi seperti
3.10bisa kehilangan nol terakhirnya dan menjadi3.1, dan1.0menjadi angka bahkan saat Anda menginginkan teks. Kutip string versi dan ID. - Anchor dan alias menghilang. Referensi
&anchordan*aliasYAML tidak memiliki padanan JSON. Konverter yang baik memperluas keduanya menjadi nilai penuh, sehingga data benar tetapi deduplikasi hilang — JSON ke YAML ke JSON tidak akan membangun ulang anchor asli. - Komentar dan block scalar. Komentar dihapus saat ke JSON. Block scalar multi-baris (
|dan>) menciut menjadi string JSON biasa dengan escape\n, sehingga maksud pemformatan visual hilang. - Indentasi saat kembali ke YAML. JSON tidak mengkodekan indentasi, sehingga konverter memilih gaya yang konsisten. Tinjau sebelum menempel ke alat yang sensitif terhadap tab.
Mengapa hanya lokal itu penting
File konfigurasi dan payload API adalah jenis hal yang tidak seharusnya diunggah ke server sembarangan: keduanya sering membawa nama host, token, nama layanan internal, atau data pelanggan. Konverter ini menjalankan langkah parse-dan-emit di browser Anda dengan JavaScript. Tidak ada yang dikirim ke backend, tidak ada yang dicatat, dan alat ini berfungsi offline setelah halaman dimuat. Tempel Kubernetes secret atau alur kerja CI dengan keyakinan bahwa semuanya tetap di mesin Anda.
Butuh alat terkait? Jelajahi selengkapnya di konverter data kami, bersihkan input yang berantakan dengan pemformat JSON, dan kembali ke sini kapan pun Anda perlu berpindah antara dunia API dan dunia konfigurasi.
Pertanyaan yang sering diajukan
Apakah data saya diunggah ke suatu tempat?
Tidak. Konversi terjadi sepenuhnya di browser Anda menggunakan JavaScript lokal. JSON atau YAML Anda tidak pernah dikirim ke server, sehingga rahasia dan file konfigurasi tetap privat.
Mengapa nilai YAML true atau false saya berubah secara tak terduga?
YAML 1.1 memperlakukan kata-kata yang tidak dikutip seperti yes, no, on, dan off sebagai boolean — masalah Norway. Bungkus nilai apa pun yang Anda maksudkan sebagai string dalam tanda kutip agar bertahan sebagai teks saat konversi.
Apa yang terjadi pada komentar saya saat mengkonversi YAML ke JSON?
JSON tidak memiliki sintaks komentar, sehingga semua komentar hash dihapus selama konversi. Jika Anda perlu mempertahankan catatan, simpan salinan resmi Anda dalam YAML.
Apakah anchor dan alias YAML dipertahankan?
Keduanya diperluas menjadi nilai penuhnya karena JSON tidak memiliki mekanisme referensi. Data tetap benar, tetapi deduplikasi tidak dapat dipulihkan saat Anda mengkonversi kembali ke YAML.
Bisakah saya mengkonversi JSON ke YAML serta YAML ke JSON?
Ya, alat ini bekerja ke kedua arah. Tempel JSON untuk mendapatkan YAML, atau tempel YAML untuk mendapatkan JSON, dan konverter mendeteksi dan menghasilkan format yang lain.
Mengapa YAML rusak saat saya menggunakan tab?
YAML mengharuskan spasi untuk indentasi dan menolak tab. Jika tempelan gagal diurai, ganti karakter tab dengan spasi dan pertahankan indentasi yang konsisten.
