tigtools

JSON Diff

Tampal dua dokumen JSON untuk melihat dengan tepat nilai yang berbeza, disenaraikan mengikut laluan seperti $.order.items[2].price.

Berjalan dalam pelayar anda Tanpa pendaftaran

Bandingkan array
Papar

Cara menggunakannya

  1. Tampal JSON asal di sebelah kiri dan JSON yang diubah di sebelah kanan, atau cuba contoh.
  2. Pilih cara array dibandingkan: mengikut posisi, atau memadankan item supaya item yang disisipkan dilaporkan sekali sahaja.
  3. Baca perbezaan sebagai senarai atau berdampingan. Setiap satu mempunyai laluan daripada akar ($).
  4. Salin laporan untuk ditampal ke dalam tiket atau semakan kod.

Cara ia berfungsi

Kedua-dua dokumen dihuraikan dan dibandingkan sebagai data, bukan sebagai teks. Objek dibandingkan kunci demi kunci, jadi susunan kunci serta ruang kosong atau lekukan tidak penting. Nombor dibandingkan mengikut nilai, jadi 1 dan 1.0 adalah sama.

Setiap perbezaan mempunyai laluan yang ditulis seperti ungkapan JSONPath: $ ialah akar, .name ialah sifat, [2] ialah indeks tatasusunan, dan kunci yang bukan nama ringkas diletakkan dalam tanda petik, seperti $["first-name"]. Empat jenis perbezaan dilaporkan: ditambah (hanya di sebelah kanan), dialih keluar (hanya di sebelah kiri), berubah (jenis sama, nilai berbeza) dan jenis berubah (contohnya nombor 44.9 menjadi rentetan "44.90", atau nilai menjadi null). Apabila keseluruhan objek atau tatasusunan ditambah atau dialih keluar, ia dilaporkan sekali sahaja pada laluannya sendiri, bukan satu laporan bagi setiap medan.

Tatasusunan dibandingkan mengikut kedudukan secara lalai: item 0 dengan item 0, item 1 dengan item 1. Jika item disisipkan pada permulaan, setiap item selepasnya akan kelihatan berubah. “Padankan item yang dialihkan” mula-mula menjajarkan kedua-dua tatasusunan menggunakan jujukan sepunya terpanjang bagi item yang sama, jadi penyisipan atau pemadaman dilaporkan sekali sahaja dan item selebihnya dipasangkan. Item ditambah menggunakan indeksnya di sebelah kanan, item dialih keluar menggunakan indeksnya di sebelah kiri. Pemadanan dilangkau untuk tatasusunan yang sangat besar (lebih kurang 2 juta pasangan item), yang kemudiannya dibandingkan mengikut kedudukan.

Laluan kunci dalam senarai disusun mengikut abjad dalam setiap objek. Sehingga 2,000 perbezaan dipaparkan; laporan yang disalin sentiasa mengandungi kesemuanya.

Contoh

Menyemak perubahan API

Bandingkan respons semalam dan hari ini untuk pesanan yang sama. Perbezaan menunjukkan $.status berubah daripada "pending" kepada "shipped", $.total berubah jenis daripada nombor kepada rentetan, $.coupon dialih keluar dan $.customer.phone ditambah.

Hanyutan konfigurasi

Tampal konfigurasi JSON daripada staging dan production. Oleh sebab susunan kunci diabaikan, hanya perbezaan sebenar seperti $.cache.ttl 300 → 60 muncul, walaupun fail disimpan oleh alat yang berbeza.

Senarai dengan item yang disisipkan

Senarai produk mendapat item pertama baharu. Mengikut kedudukan, setiap produk kelihatan berubah; dengan “Padankan item yang dialihkan”, hasilnya ialah satu “Ditambah $[0]”.

Soalan Lazim

Bagaimana ini berbeza daripada diff teks?

Diff teks membandingkan baris, jadi penyusunan semula kunci atau pemformatan semula akan kelihatan sebagai perubahan. Alat ini membandingkan data yang telah dihuraikan, jadi hanya perbezaan pada nilai, jenis dan struktur yang dilaporkan.

Mengapa array menunjukkan banyak perubahan selepas satu sisipan?

Dalam mod “Mengikut posisi”, item dibandingkan pada indeks yang sama, dan satu sisipan mengalihkan setiap item selepasnya. Tukar kepada “Padankan item yang dipindahkan” untuk menyelaraskan item yang sama terlebih dahulu.

Adakah "1" dan 1 dianggap sama?

Tidak. Satu ialah rentetan dan satu lagi ialah nombor, jadi perbezaan dilaporkan sebagai perubahan jenis. Nilai dengan jenis yang sama dibandingkan dengan tepat.

Bolehkah saya membandingkan fail yang sangat besar?

Fail bersaiz beberapa megabait berfungsi, tetapi semuanya diproses dalam memori pelayar anda, jadi dokumen yang sangat besar mungkin perlahan pada telefon.

Privasi

Kedua-dua dokumen dihuraikan dan dibandingkan hanya dalam pelayar anda. Tiada apa-apa dimuat naik, disimpan atau disertakan dalam analitik.