logo
GeekFormat

JSON Diff

Compare 1
LamaOriginal JSON
1{
2 "name": "GeekFormat",
3~ "description": "面向开发者的免费在线工具集",
4~ "version": "1.0.0",
5 "features": [
6 "formatting",
7 "validation",
8~ "diff"
 
9 ],
10 "author": {
11 "name": "GeekFormat",
12 "url": "https://geekformat.com"
13 },
14 "stats": {
15~ "tools": 80,
16~ "languages": 18
17 },
18~ "active": true
19}
+1~6

Alat JSON Diff online gratis. Bandingkan dua objek JSON secara berdampingan dengan bidang tambahan, hapus, dan ubah yang disorot. Otomatis memformat sebelum melakukan perbandingan baris demi baris dan karakter demi karakter, dengan statistik waktu nyata untuk penambahan, penghapusan, dan modifikasi. Menyediakan tampilan teks dan semantik. Ideal untuk debugging integrasi API, perbandingan versi file konfigurasi, dan pemecahan masalah data pengujian otomatis.

Rekomendasi Terkait

Kasus penggunaan

  • Membandingkan perbedaan antara data respons aktual dan data Mock yang diharapkan selama integrasi API
  • Membandingkan perubahan versi dalam file konfigurasi JSON di berbagai lingkungan (dev/test/produksi)
  • Cepat memecahkan masalah inkonsistensi antara data respons dan dasar asersi dalam pengujian otomatis
  • Membandingkan perubahan struktur respons antara versi lama dan baru setelah meningkatkan API pihak ketiga
  • Membandingkan perubahan dalam konfigurasi atau model data yang sama sebelum dan sesudah modifikasi selama Tinjauan Kode
  • Membandingkan respons JSON dari permintaan normal vs. abnormal saat memecahkan masalah produksi
  • Memverifikasi konsistensi antara data sumber dan target selama sinkronisasi data

Fitur

  • Perbandingan Diff Mendalam: Otomatis memformat terlebih dahulu, kemudian melakukan perbandingan rekursif baris demi baris dan karakter demi karakter, secara tepat mengidentifikasi penambahan, penghapusan, dan modifikasi
  • Sorotan Visual: Skema tiga warna merah/hijau/kuning dengan jelas menandai penghapusan, penambahan, dan modifikasi, dengan gulir kiri-kanan yang disinkronkan
  • Sorotan Tingkat Karakter: Di dalam baris yang dimodifikasi, karakter spesifik yang berubah lebih lanjut disorot untuk penentuan posisi yang lebih halus
  • Pemformatan Otomatis: Mempercantik kedua sisi JSON secara seragam sebelum perbandingan, secara otomatis menghilangkan gangguan dari perbedaan indentasi dan spasi
  • Tampilan Ganda Teks/Semantik: Perbandingan teks baris demi baris atau perbandingan semantik struktural, dapat dialihkan dengan satu klik sesuai kebutuhan
  • Statistik Diff: Statistik bawah waktu nyata untuk penambahan/penghapusan/modifikasi, menampilkan "Identik" saat sepenuhnya cocok
  • Perbandingan Multi-Tab: Bandingkan beberapa grup JSON secara bersamaan tanpa gangguan
  • Berbagi & Tukar: Pembuatan tautan yang dapat dibagikan satu klik, pertukaran konten kiri/kanan satu klik, salinan satu klik untuk salah satu sisi
  • Privasi & Keamanan: Pemrosesan sepenuhnya lokal di browser, nol unggahan data, aman untuk menangani respons yang berisi rahasia

Cara Penggunaan

  1. Tempelkan dua konten JSON ke dalam kotak input kiri dan kanan masing-masing (alat akan memformatnya secara otomatis)
  2. Pilih Tampilan Teks atau Tampilan Semantik untuk melihat perbedaan yang ditandai dengan sorotan merah/hijau/kuning
  3. Gunakan statistik penambahan/penghapusan/modifikasi di bagian bawah untuk mengonfirmasi skala perubahan
  4. Salin konten dengan satu klik atau buat tautan yang dapat dibagikan untuk berkolaborasi dengan orang lain dalam pemecahan masalah

Pertanyaan Umum

Bagaimana cara cepat menemukan perbedaan antara dua file JSON?

Tempelkan dua teks JSON ke dalam kotak input kiri dan kanan masing-masing. Alat akan secara otomatis memformatnya terlebih dahulu, kemudian melakukan perbandingan mendalam baris demi baris dan karakter demi karakter. Konten baru disorot hijau, konten yang dihapus disorot merah, dan baris yang dimodifikasi menampilkan nilai lama dan baru dengan karakter yang berubah disorot, membantu Anda langsung menemukan perbedaan data.

Apakah saya perlu memformat JSON secara manual sebelum membandingkan?

Tidak. Alat secara otomatis mengurai dan memformat secara seragam (indentasi 2 spasi) JSON di kedua sisi sebelum perbandingan. Jadi meskipun dua JSON memiliki indentasi, spasi, dan baris baru yang benar-benar berbeda, tidak akan ada perbedaan yang tidak berarti selama konten data konsisten. Ini secara otomatis menghilangkan gangguan dari karakter spasi.

Apa perbedaan antara Tampilan Teks dan Tampilan Semantik?

Tampilan Teks membandingkan baris demi baris setelah pemformatan, secara intuitif menunjukkan penambahan, penghapusan, dan modifikasi pada setiap baris, cocok untuk menelusuri perubahan keseluruhan dengan cepat. Tampilan Semantik lebih berfokus pada perbandingan berdasarkan struktur dan bidang JSON, membantu Anda memahami bidang mana yang berubah dari perspektif semantik data. Anda dapat beralih antara kedua tampilan kapan saja dengan satu klik.

Apakah urutan elemen array yang berbeda akan ditandai sebagai perbedaan?

Ya. Alat membandingkan berdasarkan urutan konten yang diformat, sehingga urutan elemen array yang berbeda akan ditampilkan sebagai perbedaan. Jika Anda hanya peduli pada konsistensi konten terlepas dari urutan, kami sarankan menggunakan fitur "Urutkan Kunci" di alat Pemformat JSON atau mengurutkan array sebelum membandingkan, untuk menghindari gangguan yang disebabkan oleh urutan.

Skenario pengembangan dan pengujian spesifik apa yang cocok untuk alat ini?

Sangat cocok untuk skenario berikut: 1) Integrasi API: membandingkan perbedaan antara respons API aktual dan data Mock yang diharapkan; 2) Manajemen Konfigurasi: membandingkan perbedaan file konfigurasi di berbagai lingkungan (dev/produksi); 3) Pengujian Otomatis: sebagai pembantu asersi pengujian untuk cepat memecahkan masalah inkonsistensi data; 4) Peningkatan Versi: membandingkan perubahan struktur respons sebelum dan sesudah peningkatan API pihak ketiga.

Apa perbedaan antara JSON Diff dan Pemformat JSON?

Pemformat JSON mengatur JSON yang sulit dibaca menjadi struktur hierarkis yang mudah dibaca, sedangkan JSON Diff membandingkan perbedaan antara dua JSON. Keduanya sering digunakan bersama: alat ini sebenarnya memiliki langkah pemformatan bawaan yang secara otomatis mempercantik kedua sisi sebelum perbandingan, membiarkan Anda fokus pada perbedaan itu sendiri.

Apakah hasil perbandingan dapat dibagikan atau disalin?

Ya. Alat mendukung kompresi dan pengkodean konten kiri dan kanan saat ini ke dalam URL untuk menghasilkan tautan yang dapat dibagikan. Penerima dapat membukanya untuk melihat skenario perbandingan yang sama tanpa mengunggah ke server. Anda juga dapat menyalin konten dari salah satu sisi dengan satu klik untuk tinjauan kode atau pelacakan masalah.

Bisakah saya membandingkan beberapa grup secara bersamaan?

Ya. Alat mendukung perbandingan multi-tab. Anda dapat menempelkan pasangan JSON yang berbeda di tab yang berbeda untuk perbandingan; tab beroperasi secara independen tanpa gangguan, memudahkan untuk secara bersamaan memecahkan perbedaan di berbagai API atau konfigurasi.

Apakah perbandingan menghitung berapa banyak perubahan yang dilakukan?

Ya. Bilah status bawah menampilkan jumlah waktu nyata untuk penambahan, penghapusan, dan modifikasi, sehingga Anda dapat melihat skala perubahan sekilas. Jika dua JSON benar-benar identik, pesan "Identik" akan ditampilkan.

Apakah data yang dibandingkan akan diunggah ke server?

Tidak. Semua pemformatan dan perbandingan diff berjalan sepenuhnya secara lokal di browser Anda. Data tidak pernah diunggah ke server mana pun. Aman bahkan saat membandingkan respons API yang berisi rahasia, token, atau privasi pengguna. Data dihapus saat Anda menutup halaman.

Tentang JSON Diff (Perbandingan JSON)

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.

Referensi Cepat Jenis Perbedaan JSON

Saat membandingkan dua JSON, perbedaan biasanya termasuk dalam kategori berikut. Memahaminya membantu Anda dengan cepat menentukan sifat perubahan.

Jenis DiffPenandaDeskripsi
Ditambahkan (Added)+ HijauBidang atau elemen array yang muncul di versi baru tetapi tidak di versi lama.
Dihapus (Removed)− MerahBidang atau elemen array yang ada di versi lama tetapi dihapus di versi baru.
Diubah (Modified)~ KuningBidang masih ada tetapi nilainya berubah; nilai lama dan baru ditampilkan dengan karakter yang berubah disorot.
Perubahan Tipe~ KuningTipe nilai bidang telah berubah, misalnya, angka menjadi string, objek menjadi array; ini adalah jenis modifikasi.
Tidak BerubahNormalBaris yang identik di kedua sisi, tidak ada tanda khusus.

Prapemrosesan yang Disarankan Sebelum Perbandingan

Untuk mendapatkan hasil perbandingan yang bersih dan bermakna, Anda mungkin ingin melakukan prapemrosesan berikut sesuai kebutuhan untuk menghindari perbedaan palsu.

SkenarioTindakan yang Disarankan
Urutan kunci berbedaUrutkan berdasarkan nama kunci sebelum perbandingan (atau gunakan Tampilan Semantik untuk membandingkan di tingkat bidang).
Urutan array tidak masalahUrutkan array berdasarkan konten terlebih dahulu untuk menghindari perubahan urutan yang ditandai sebagai perbedaan.
Indentasi/spasi berbedaTidak perlu tindakan; alat ini secara otomatis memformat dan menstandarisasi tata letak.
Berisi ID bilangan bulat besarPastikan kedua sisi mengirimkan bilangan bulat besar sebagai string untuk menghindari kehilangan presisi yang menyebabkan ketidakcocokan.
Satu sisi tidak validGunakan alat Validasi/Perbaikan JSON untuk memperbaiki menjadi JSON yang valid sebelum perbandingan.

Privacy & Security

Semua pemformatan JSON dan perbandingan diff dalam alat ini berjalan sepenuhnya secara lokal di browser Anda. Data tidak pernah diunggah ke server mana pun, juga tidak direkam atau di-cache secara jarak jauh. Aman bahkan saat membandingkan respons API yang berisi rahasia, token, atau informasi pengguna. Data dihapus saat Anda menutup atau menyegarkan halaman.

Authoritative References

Troubleshooting

Data terlihat sama tetapi perbedaan dilaporkan

Penyebab paling umum adalah urutan elemen array yang berbeda, atau perbedaan yang sulit dilihat dalam string (misalnya, spasi lebar penuh/setengah lebar, sensitivitas huruf besar/kecil, spasi trailing, akhiran baris \r\n vs \n). Coba urutkan array atau kunci sebelum perbandingan. Alat ini sudah otomatis memformat, yang biasanya menghilangkan perbedaan palsu yang disebabkan oleh indentasi dan spasi biasa.

Satu sisi melaporkan kesalahan parse / tidak dapat membandingkan

Ini berarti konten di sisi tersebut bukan JSON yang valid (misalnya, tanda kutip hilang, koma trailing, berisi komentar, kurung tidak tertutup). Silakan gunakan alat Validasi/Perbaikan JSON terlebih dahulu untuk memperbaikinya menjadi JSON yang valid, kemudian kembali untuk membandingkan.

Terlalu banyak perbedaan, hampir setiap baris ditandai merah atau hijau

Ini kemungkinan besar karena urutan kunci atau urutan array sepenuhnya berbeda antara dua set data, menyebabkan ketidaksesuaian baris demi baris. Kami sarankan menstandarisasi urutan terlebih dahulu (urutkan objek berdasarkan nama kunci, urutkan array berdasarkan konten) sebelum perbandingan, atau beralih ke Tampilan Semantik untuk melihat bidang yang benar-benar berubah di tingkat bidang.

Angka besar tidak cocok (misalnya, digit terakhir ID berbeda atau menjadi notasi ilmiah)

Angka JSON diurai sebagai float presisi ganda IEEE 754. Bilangan bulat besar yang melebihi 2^53 (ID snowflake, nomor pesanan) kehilangan presisi, menyebabkan kedua sisi terlihat sama tetapi diurai sebagai nilai yang berbeda. Bilangan bulat besar harus ditransmisikan sebagai string, misalnya, "id": "9007199254740993".

Karakter Cina ditampilkan sebagai \uXXXX menyebabkan ketidakkonsistenan yang tampak

Ketika satu sisi menggunakan notasi escape (\u4e2d\u6587) dan sisi lain menggunakan Cina biasa, mereka mungkin terlihat berbeda setelah pemformatan. Keduanya secara semantik identik tetapi berbeda secara tekstual, sehingga akan ditandai sebagai perbedaan. Anda dapat menyatukan apakah akan melakukan escape di sisi pembuat (misalnya, ensure_ascii=False Python).