Cara membandingkan JSON
- Tempel JSON asli di sebelah kiri dan JSON yang diubah di sebelah kanan, atau seret file ke masing-masing sisi.
- Baca ringkasan dan daftar perbedaannya: setiap nilai yang ditambahkan, dihapus, atau diubah ditampilkan beserta path-nya, misalnya
$.users[2].email. - Gulir ke bawah ke tampilan berdampingan untuk melihat perubahan dalam konteksnya. Centang Abaikan urutan array jika urutan item dalam list tidak penting.
JSON diff semantik, bukan diff teks
Diff teks biasa melaporkan perubahan setiap kali sebuah key berpindah, indentasinya berbeda, atau angka ditulis dengan cara lain. JSON diff ini membandingkan datanya itu sendiri:
- Urutan key diabaikan –
{"a":1,"b":2}sama dengan{"b":2,"a":1}. - Format diabaikan – spasi, baris baru, dan indentasi tidak berpengaruh.
- Angka dibandingkan berdasarkan nilainya –
1.0sama dengan1. - Array disejajarkan – menyisipkan satu item tidak membuat semua item setelahnya ditandai berubah, dan objek yang dimodifikasi dipasangkan dengan padanan yang paling mirip.
- Abaikan urutan array – membandingkan array sebagai koleksi tanpa urutan, berguna untuk daftar tag, ID, atau permission.
Cara membaca hasil perbandingan
| Label | Arti | Path menunjuk ke |
|---|---|---|
| Ditambahkan | Nilai hanya ada di JSON yang diubah | posisinya di JSON yang diubah |
| Dihapus | Nilai hanya ada di JSON asli | posisinya di JSON asli |
| Diubah | Kedua dokumen memiliki key tersebut, tetapi dengan nilai atau tipe yang berbeda | posisinya di JSON yang diubah |
Di tampilan berdampingan, kedua dokumen diformat dengan key yang diurutkan agar baris yang cocok saling berhadapan; bagian panjang yang tidak berubah dilipat, kecuali Anda menghapus centang Sembunyikan baris yang tidak berubah.
Pertanyaan yang sering diajukan
Apakah urutan key berpengaruh?
Tidak. Objek JSON secara definisi tidak berurutan, sehingga perbandingan mengabaikan urutan key. Array tetap dianggap berurutan, kecuali Anda mencentang Abaikan urutan array.
Bisakah saya membandingkan file JSON yang besar?
Bisa. Perbandingan berjalan di browser Anda dan menampilkan 200 perbedaan pertama, dengan tombol untuk menampilkan semuanya; tampilan berdampingan menampilkan hingga 5.000 baris.
Bagaimana cara membandingkan JSON di kode?
Di Python, json.loads(a) == json.loads(b) menguji kesamaan. JavaScript tidak punya fungsi perbandingan mendalam bawaan; library seperti Lodash menyediakan _.isEqual(a, b). Di command line, diff <(jq -S . a.json) <(jq -S . b.json) menampilkan baris yang berbeda.
Apakah data saya diunggah?
Tidak. Kedua dokumen dibandingkan secara lokal di browser Anda dan tidak pernah meninggalkan perangkat Anda.