Initializing, please wait a moment

JSON vs YAML vs TOML, Dijelaskan

Ditinjau terakhir 2026-04-27. Buka JSON parser atau JSON to CSV untuk pekerjaan JSON di browser.

Jawaban 30 detik. JSON untuk mesin - sintaks ketat, mudah di-parse, jelek dibaca. YAML untuk manusia - spasi signifikan, mendukung anchor dan referensi, rentan terhadap error parsing yang halus. TOML adalah jalan tengah - bersih untuk konfigurasi dangkal, canggung untuk nesting dalam. Pilih berdasarkan siapa yang mengedit file dan seberapa kompleks datanya.

Tiga format berdampingan

Konfigurasi yang sama, tiga cara:

JSON                        YAML                  TOML
{                           server:               [server]
  "server": {                 host: "localhost"   host = "localhost"
    "host": "localhost",      port: 8080          port = 8080
    "port": 8080
  }
}                                                 

JSON - ketat dan tidak ambigu

Tujuan desain JSON adalah format yang dapat di-parse identik oleh bahasa apa pun. Tata bahasanya kecil (enam tipe data, aturan spasi yang terdefinisi dengan baik). Setiap parser menghasilkan pohon yang sama. Keseragaman itu adalah alasan mengapa JSON mendominasi API, file konfigurasi untuk alat yang dikirim dengan parser JSON, dan serialisasi mesin-ke-mesin.

Di mana JSON canggung: komentar tidak diizinkan, koma akhir adalah error sintaks, dan konfigurasi nested dalam menjadi tidak terbaca untuk manusia. Perbaikannya adalah JSON5 (JSON dengan komentar dan koma akhir) untuk konfigurasi yang diedit manusia, sambil menjaga JSON murni untuk transportasi.

YAML - mudah dibaca, kadang terlalu cerdik

YAML terbaca seperti catatan outline. Indentasi membuat struktur; daftar menggunakan tanda hubung; nilai tidak perlu tanda kutip. Field-nya singkat dan file padat. Itulah mengapa YAML mendominasi Kubernetes, GitHub Actions, Docker Compose, dan konfigurasi CI - semua tempat di mana manusia mengedit file setiap hari.

Di mana YAML menyakitkan: spasi signifikan dan tab merusak parser. String "yes" diparsing sebagai boolean true. Kode negara Norwegia "NO" diparsing sebagai false. Angka dengan nol di depan diparsing sebagai oktal. String multi-baris memiliki empat sintaks berbeda. Format dapat dibaca manusia tetapi tidak aman bagi manusia; bug parsing halus umum terjadi di produksi. Perbaikannya adalah lint setiap file YAML di CI dan kutip string apa pun yang terlihat dapat disalahartikan.

TOML - sederhana, dangkal

TOML menargetkan ceruk file konfigurasi di mana YAML terlalu longgar dan JSON terlalu verbose. Bagian dalam kurung siku, pasangan kunci-nilai dengan tanda sama dengan, tipe tanggal dan waktu native. Cargo (manajer paket Rust), pyproject.toml di Python modern, dan beberapa alat konfigurasi menggunakannya.

Di mana TOML canggung: data nested dalam. Sintaks untuk array tabel verbose dan tidak jelas secara visual. Untuk nesting lebih dari 2-3 level, YAML atau JSON terbaca lebih baik. TOML menang ketika konfigurasi secara alami datar - daftar dependensi, daftar pengaturan build, sekumpulan kecil bagian bernama.

Aturan keputusan

Mesin-ke-mesin: JSON. Konfigurasi manusia diedit harian, dengan struktur sebagian besar datar: TOML. Konfigurasi manusia diedit harian, dengan struktur nested dalam: YAML, dengan linting di CI. Saat ragu, JSON - ketegasannya adalah asuransi murah.

Untuk konversi antar format, lihat JSON to CSV atau JSON parser. Untuk perkakas developer lain, hub alat developer.

Why trust these tools

  • Ten-plus years of web tooling. The freetoolonline editorial team has shipped browser-based utilities since 2015. The goal has never changed: get you to a working output fast, without an install.
  • Truly in-browser - no upload. Every file-processing tool on this site runs in your browser through modern Web APIs (File, FileReader, Canvas, Web Audio, WebGL, Web Workers). Your photo, PDF, audio, or text never leaves your device.
  • No tracking during tool use. Analytics ends at the page view. The actual input you paste, drop, or capture is never sent to any server and never written to any log.
  • Open-source core components. The processing engines underneath (libheif, libde265, pdf-lib, terser, clean-css, ffmpeg.wasm, and others) are public and audit-able. We link to each one in its tool page's footer.
  • Free, with or without ads. All tools are fully functional without sign-up. The Disable Ads button in the header is always available if you need a distraction-free run.