JSON Diff
Diff struktural dua dokumen JSON — kunci yang ditambah, dihapus, diubah, dan perubahan nilai ditampilkan berdampingan.
Masukkan input di atas untuk melihat hasilnya.
Dibuat oleh JXXR1 · ♥ Jadi sponsor · ☕ Belikan saya kopi
Untuk apa ini?
Plain-text diff pada JSON memberitahu kamu baris mana yang berubah; structural diff memberitahu data point mana yang berubah. Sering kali keduanya sangat berbeda — dokumen yang diformat ulang tanpa perubahan semantik akan tampak "setiap baris berbeda" bagi text diff tapi "tidak ada perubahan" di sini. Tool ini menelusuri kedua tree JSON dan melaporkan setiap path tempat keduanya berbeda, menggunakan sintaks RFC 6901 JSON Pointer (/users/0/name) supaya output-nya tidak ambigu apa pun formattingnya.
Kapan digunakan
- Membandingkan dua response API untuk melihat apa yang sebenarnya berubah di sebuah release, mengabaikan noise whitespace/urutan key.
- Mendiff file config sebelum/sesudah migrasi untuk memastikan hanya field yang dimaksud yang bergerak.
- Menghasilkan dokumen RFC 6902 JSON Patch untuk dikirim ke sistem yang mendukungnya (endpoint PATCH, fallback JSON-Merge-Patch).
- Melihat dua test fixture untuk memahami apa yang membuat satu fail sementara yang lain pass.
Kesalahan umum
- Mode pembandingan array itu penting. "By index" melaporkan satu element yang disisipkan sebagai remove+add untuk semua element setelahnya. "By value" memperlakukan array sebagai set, kehilangan reorder yang sesungguhnya. Pilih yang sesuai dengan bagaimana data kamu seharusnya tersusun.
- Number-vs-string bukan struktural.
{"id": 1}dan{"id": "1"}muncul sebagai perubahan karena type-nya beda. Normalisasi type sebelum diff jika itu penting. - RFC 6902 adalah patch satu arah, bukan merge. Apply dengan implementasi RFC 6902 asli, bukan dengan string-replacement.
- Tree besar jadi noisy. Kalau diff-nya ratusan operasi, kemungkinan kamu membandingkan dua dokumen yang tidak berkaitan — periksa lagi input-nya.