Perbandingan struktur JSON

Bandingkan dua struktur JSON dan periksa penambahan, penghapusan, serta perubahan pada jalur yang jelas, dengan mempertahankan penulisan angka tanpa pembulatan.

Halaman ini menampilkan alat yang tersedia dalam bahasa ini sesuai cakupan saat ini. Ini tidak berarti semua alat di situs telah diterjemahkan ke semua bahasa.

Pemrosesan dilakukan secara lokal, tanpa mengunggah masukan atau menyimpannya secara otomatis. Setiap masukan dibatasi hingga 256 KiB dalam UTF-8, dengan total 512 KiB; kedalaman 32, 30.000 nilai per masukan, 2000 perbedaan, dan laporan 1 MiB. Perbandingan dihentikan setelah 5 detik.

Urutan kunci objek diabaikan. Array dibandingkan berdasarkan indeks tanpa mendeteksi perpindahan. Angka dibandingkan berdasarkan penulisannya: 1, 1.0, dan 1e0 berbeda, tanpa membulatkan angka besar. String JSON didekodekan untuk dibandingkan tanpa normalisasi Unicode. Mengubah tipe cabang, menambahkannya, atau menghapusnya menghasilkan satu baris yang berisi seluruh cabang.

Masukan perbandingan

Cara menggunakan

Tempel teks JSON sebelum dan sesudah, lalu bandingkan. Periksa jenis perubahan, jalur, serta teks JSON sebelum dan sesudah setiap perubahan. Pindah halaman pratinjau bila diperlukan. Pilih tindakan untuk menyalin laporan lengkap atau mengunduhnya sebagai json-diff.json. Mengedit masukan membatalkan hasil sebelumnya; laporan tidak menggantikan masukan mana pun.

Contoh penggunaan

Sebelum: {"n":1,"a":[1,2]}; sesudah: {"a":[2,1],"n":1.0}. Ada tiga perubahan: /n dari teks 1 menjadi teks 1.0, /a/0 dari 1 menjadi 2, dan /a/1 dari 2 menjadi 1. Mengubah urutan kedua kunci objek saja tidak menambahkan perubahan. Kunci a/b~c muncul pada /a~1b~0c.

Dukungan dan batasan

Urutan kunci objek diabaikan, tetapi array dibandingkan berdasarkan indeks; perpindahan item atau kecocokan himpunan tidak disimpulkan. Angka dibandingkan berdasarkan penulisan aslinya: 1, 1.0, dan 1e0 berbeda dan tidak pernah dikonversi menjadi Number. String JSON didekodekan untuk dibandingkan tanpa normalisasi Unicode. Menambah atau menghapus cabang, atau mengubah tipenya, menghasilkan satu baris yang berisi seluruh cabang. Jalur kosong menunjukkan akar; JSON Pointer mengubah ~ menjadi ~0 dan / menjadi ~1. Field before dan after dalam laporan berupa string yang berisi JSON ringkas, bukan nilai angka yang dibulatkan. Field dihilangkan jika sisi tersebut tidak ada, sedangkan JSON null diwakili oleh string "null". Laporan menjelaskan perbedaan; ini bukan JSON Patch untuk menerapkan perubahan. Pemrosesan tetap di browser tanpa menjalankan konten JSON, mengunggahnya, atau menyimpan maupun menyalinnya secara otomatis.

Pertanyaan umum

Apakah hasil yang sama berarti kedua teks identik byte demi byte?

Tidak. Spasi di luar string, urutan kunci objek, dan penulisan escape karakter dapat berbeda meskipun nilainya sama menurut aturan ini. Daftar changes akan kosong, dan laporan tetap dapat disalin atau diunduh. Sebaliknya, penulisan angka yang berbeda atau urutan elemen array yang berbeda dihitung sebagai perbedaan, meskipun maknanya tampak serupa.

Alat terkait