JSON Diff adalah membandingkan dua set data JSON untuk menemukan bidang tambahan, hapus, dan ubah di antara mereka. Dalam pengembangan sehari-hari, kita sering perlu tahu "apa sebenarnya yang berbeda" antara dua JSON: apa yang berubah dalam struktur respons sebelum dan sesudah peningkatan API, di mana konfigurasi berbeda antara dua lingkungan, bidang mana yang menyimpang antara hasil aktual dan dasar yang diharapkan dalam pengujian otomatis. Pemeriksaan manual baris demi baris lambat dan rawan kesalahan; alat JSON Diff dapat secara otomatis menyoroti perbedaan.
Perbandingan diff JSON umumnya mengikuti dua pendekatan. Satu adalah "perbedaan tekstual": setelah memformat JSON menjadi teks multi-baris kanonik, lakukan perbandingan mirip Git diff baris demi baris, secara intuitif menunjukkan penambahan, penghapusan, dan modifikasi per baris. Yang lain adalah "perbedaan struktural/semantik": uraikan JSON menjadi struktur pohon dan bandingkan nilai dan tipe satu per satu berdasarkan jalur bidang (misalnya, user.address.city), tidak terpengaruh oleh urutan bidang, indentasi, atau faktor pemformatan lainnya. Alat ini menyediakan Tampilan Teks dan Tampilan Semantik, dapat dialihkan sesuai kebutuhan.
Mengapa memformat sebelum membandingkan? Karena data yang sama dapat memiliki pemformatan yang benar-benar berbeda (satu baris vs. multi-baris, indentasi 2 spasi vs. 4 spasi). Jika dibandingkan langsung sebagai teks mentah, banyak "perbedaan palsu" yang disebabkan oleh variasi pemformatan akan muncul. Alat ini secara otomatis mengurai dan memformat secara seragam kedua sisi sebelum perbandingan, menghilangkan gangguan spasi sehingga Anda hanya melihat perubahan data yang benar-benar berarti.
Perhatikan bahwa urutan kunci dalam objek JSON secara semantik tidak penting ({"a":1,"b":2} setara dengan {"b":2,"a":1}), tetapi urutan elemen array bermakna ([1,2] berbeda dari [2,1]). Oleh karena itu, ketika Anda hanya peduli pada konsistensi konten array terlepas dari urutan, kami sarankan mengurutkan array atau mengurutkan kunci sebelum perbandingan untuk menghindari perubahan urutan yang salah diidentifikasi sebagai perbedaan.
Semua pemformatan dan perbandingan dalam alat ini dilakukan secara lokal di browser; data tidak pernah diunggah ke server. Ini juga mendukung sorotan tingkat karakter, penghitungan penambahan/penghapusan/modifikasi, perbandingan simultan multi-tab, dan berbagi URL skenario perbandingan, cocok untuk integrasi API, perbandingan konfigurasi, asersi pengujian, dan skenario Tinjauan Kode.