JSON atau YAML
Intinya: JSON memakai kurung kurawal dan YAML memakai indentasi: mesin cocok dengan JSON, manusia yang mengedit konfigurasi cocok dengan YAML. Komentar, anchor dan struktur multi-dokumen tidak ikut terbawa saat konversi.

Intinya: pakai JSON untuk data mesin-ke-mesin dan YAML untuk konfigurasi yang diedit manusia; pilih YAML saat butuh komentar, teks multi-baris atau anchor, dan JSON saat setiap bahasa harus mem-parsing payload yang sama tanpa ambiguitas.
Berdampingan
{
"server": {
"host": "127.0.0.1",
"port": 8080
}
}
server:
host: 127.0.0.1
port: 8080
Struktur yang sama. YAML membuang tanda baca dan mendapat tempat untuk komentar.
Di mana keduanya berbeda
| JSON | YAML | |
|---|---|---|
| Struktur | Kurung kurawal dan koma | Indentasi |
| Komentar | Tidak ada | Ada |
| String | Kutip ganda, escaping wajib | Biasanya tanpa kutip |
| Teks multi-baris | Escape \n atau array |
Block scalar ` |
| Penggunaan ulang | Tidak ada | Anchor & dan alias * |
| Multi-dokumen | Bungkus dalam array | Pemisah --- |
| Kecepatan parsing | Cepat | Lebih lambat, ada aturan indentasi |
| Ambiguitas | Sangat rendah | no dianggap boolean, indentasi meleset satu spasi |
Baris terakhir itulah biaya nyata YAML. Pada YAML 1.1, country: NO menghasilkan boolean false, dan version: 1.0 bisa berubah menjadi float. JSON tidak punya pengetikan implisit sama sekali.
Memilih
JSON: body request dan response, pesan antar-service, kolom JSON di database, apa pun yang harus ter-parsing identik di setiap bahasa.
YAML: ekosistem yang menjadikannya default (Kubernetes, Ansible, GitHub Actions, Docker Compose); konfigurasi yang butuh penjelasan; file yang didominasi teks panjang seperti sertifikat, skrip atau SQL.
Apa yang hilang saat konversi
YAML → JSON: semua komentar, penggunaan ulang anchor (diperluas menjadi duplikat), semua dokumen selain yang pertama, serta penulisan asli tanggal dan boolean.
JSON → YAML: pembedaan string/angka melemah, sehingga "8080" dan 8080 keduanya perlu kutip eksplisit agar tetap aman.
Konversi untuk migrasi dan inspeksi sekali jalan. Jangan memelihara file yang sama dalam dua format sebagai tampilan paralel.
FAQ
Bagaimana saya harus memutuskan antara JSON dan YAML?
Mulai dari siapa yang membaca dan memelihara file: pakai JSON saat program yang menghasilkannya, data melintasi batas bahasa, dan harus ter-parsing secara terprediksi; pakai YAML saat manusia mengeditnya dan butuh penjelasan field atau teks multi-baris panjang. Keduanya bisa saling dikonversi, tetapi jangan memelihara konfigurasi yang sama dalam kedua format untuk jangka panjang.
Mengapa YAML menghasilkan lebih banyak ambiguitas tipe?
YAML punya pengetikan implisit, sehingga nilai seperti NO, on atau 1.0 bisa menjadi boolean, tanggal atau angka. JSON hanya punya tipe eksplisit: string harus dikutip, yang membuat parsing lebih terprediksi lintas bahasa.
Haruskah komentar dan anchor tetap bertahan saat mengonversi YAML ke JSON?
Tidak. Komentar, anchor dan multi-dokumen YAML tidak dapat direpresentasikan dalam JSON; anchor diperluas menjadi konten duplikat. Jika perlu mempertahankannya, gunakan library YAML dengan Document API alih-alih bolak-balik melalui objek.