Cara menggunakan
- Tempel JSON asli di kiri dan JSON yang diubah di kanan, atau coba contohnya.
- Pilih cara array dibandingkan: berdasarkan posisi, atau mencocokkan item sehingga item yang disisipkan hanya dilaporkan sekali.
- Baca perbedaan sebagai daftar atau berdampingan. Setiap perbedaan memiliki path dari akar ($).
- Salin laporan untuk ditempel ke tiket atau code review.
Cara kerja
Kedua dokumen diurai dan dibandingkan sebagai data, bukan sebagai teks. Objek dibandingkan kunci per kunci, sehingga urutan kunci serta spasi atau indentasi tidak menjadi masalah. Angka dibandingkan berdasarkan nilai, sehingga 1 dan 1.0 dianggap sama.
Setiap perbedaan memiliki jalur yang ditulis seperti ekspresi JSONPath: $ adalah akar, .name adalah properti, [2] adalah indeks array, dan kunci yang bukan nama sederhana diberi tanda kutip, seperti pada $["first-name"]. Empat jenis perbedaan dilaporkan: ditambahkan (hanya di kanan), dihapus (hanya di kiri), berubah (tipe sama, nilai berbeda) dan tipe berubah (misalnya angka 44.9 menjadi string "44.90", atau nilai menjadi null). Ketika seluruh objek atau array ditambahkan atau dihapus, hal itu dilaporkan sekali pada jalurnya sendiri, bukan sekali per bidang.
Array dibandingkan berdasarkan posisi secara default: item 0 dengan item 0, item 1 dengan item 1. Jika sebuah item disisipkan di awal, maka setiap item berikutnya akan tampak berubah. “Cocokkan item yang dipindahkan” terlebih dahulu menyelaraskan kedua array menggunakan subsequence umum terpanjang dari item yang sama, sehingga penyisipan atau penghapusan dilaporkan hanya sekali dan item yang tersisa dipasangkan. Item yang ditambahkan menggunakan indeksnya di kanan, item yang dihapus menggunakan indeksnya di kiri. Pencocokan dilewati untuk array yang sangat besar (lebih dari sekitar 2 juta pasang item), yang kemudian dibandingkan berdasarkan posisi.
Jalur kunci dalam daftar diurutkan secara alfabetis di dalam setiap objek. Hingga 2.000 perbedaan ditampilkan; laporan yang disalin selalu berisi semuanya.
Contoh
Memeriksa perubahan API
Bandingkan respons kemarin dan hari ini untuk pesanan yang sama. Diff menunjukkan $.status berubah dari "pending" menjadi "shipped", $.total berubah tipe dari angka menjadi string, $.coupon dihapus, dan $.customer.phone ditambahkan.
Penyimpangan konfigurasi
Tempel konfigurasi JSON dari staging dan dari production. Karena urutan kunci diabaikan, hanya perbedaan nyata seperti $.cache.ttl 300 → 60 yang muncul, meskipun file disimpan oleh alat yang berbeda.
Daftar dengan item tersisip
Daftar produk mendapat item baru di posisi pertama. Berdasarkan posisi, setiap produk tampak berubah; dengan "Cocokkan item yang dipindah", hasilnya hanya satu "Added $[0]".
Pertanyaan yang sering diajukan
Apa bedanya dengan diff teks?
Diff teks membandingkan baris, sehingga mengubah urutan kunci atau memformat ulang akan tampak sebagai perubahan. Alat ini membandingkan data yang telah diurai, sehingga hanya perbedaan nilai, tipe, dan struktur yang dilaporkan.
Mengapa array menampilkan banyak perubahan setelah satu penyisipan?
Dalam mode "Berdasarkan posisi", item dibandingkan pada indeks yang sama, dan penyisipan menggeser semua item setelahnya. Beralihlah ke "Cocokkan item yang dipindah" agar item yang sama diselaraskan terlebih dahulu.
Apakah "1" dan 1 dianggap sama?
Tidak. Satu adalah string dan yang lain adalah number, jadi perbedaannya dilaporkan sebagai perubahan tipe. Nilai dengan tipe yang sama dibandingkan secara persis.
Bisakah saya membandingkan file yang sangat besar?
File berukuran beberapa megabita dapat digunakan, tetapi semuanya diproses di memori browser Anda, sehingga dokumen yang sangat besar mungkin lambat di ponsel.
Privasi
Kedua dokumen diurai dan dibandingkan hanya di browser Anda. Tidak ada yang diunggah, disimpan, atau disertakan dalam analitik.