Panduan alat
Tentang Pembanding JSON
Alat JSON diff membandingkan dua dokumen berdasarkan strukturnya, bukan berdasarkan teksnya, sehingga yang Anda lihat adalah perubahan pada datanya dan bukan pada pemformatannya.
Tempelkan JSON asli di satu sisi dan JSON yang sudah diubah di sisi lain, lalu perbandingannya langsung diperbarui menjadi tabel berisi nilai yang ditambahkan, dihapus, dan diubah, lengkap dengan path masing-masing.
Cara memakai alat JSON Diff
- Tempelkan dokumen asli ke masukan pertama dan dokumen yang sudah berubah ke masukan kedua.
- Baca penghitung ringkasan di bagian atas, yang ditampilkan sebagai +N -N ~N, untuk mengetahui besarnya perubahan.
- Telusuri tabel hasilnya: jenis perubahan, path, nilai sebelum, nilai sesudah.
- Ikuti path seperti a.b[2] kembali ke berkas sumber Anda; kunci disambung dengan titik dan array memakai indeks.
Kapan Anda memerlukannya
- Membandingkan konfigurasi antara dua environment, misalnya konfigurasi JSON staging terhadap milik production.
- Meninjau perubahan respons API antara dua versi layanan sebelum Anda bergantung pada bentuk yang baru.
- Menyelidiki apa yang sebenarnya bergeser di dalam package-lock.json atau manifest dependensi hasil generasi lainnya.
- Memeriksa apa yang diubah sebuah perkakas setelah ia menserialisasi ulang berkas infrastructure as code atau manifest Kubernetes.
Cara path dan jenis perubahan dilaporkan
Setiap baris menunjuk ke satu lokasi di dalam dokumen, ditulis seperti cara Anda membaca nilai itu di dalam kode sehingga mudah ditemukan di berkas sumber.
- Ditambahkan: path hanya ada di dokumen yang diubah, dan kolom nilai sesudah menampilkan nilai barunya.
- Dihapus: path hanya ada di dokumen asli, dan kolom nilai sebelum menampilkan apa yang tadinya ada di sana.
- Diubah: path ada di kedua sisi dengan nilai berbeda, sehingga kedua kolom terisi.
- Path seperti a.b[2] berarti kunci b di dalam objek a, lalu elemen pada indeks 2 dari array tersebut.
Pertanyaan umum tentang Pembanding JSON
- Kenapa memformat ulang berkas tidak menghasilkan perbedaan apa pun?
- Karena kedua sisi diparsing terlebih dahulu. Indentasi, urutan kunci, dan akhiran baris bukan bagian dari struktur hasil parsing, jadi hal-hal itu tidak pernah muncul sebagai perbedaan.
- Kenapa menyisipkan satu elemen array menandai semua elemen sesudahnya sebagai berubah?
- Array dibandingkan berdasarkan indeks. Satu penyisipan menggeser setiap elemen berikutnya ke posisi baru, sehingga tiap posisi yang bergeser dilaporkan sebagai perubahan. Itu sifat bawaan perbandingan posisional, bukan cacat.
- Apa yang terjadi jika salah satu sisi bukan JSON yang valid?
- Kedua masukan harus berhasil diparsing. Jika salah satu sisi rusak, yang ditampilkan adalah galat parsing, bukan hasil perbandingan.
- Apa yang ditampilkan ketika kedua dokumen sama?
- Alat ini menyatakan secara tegas bahwa tidak ada perbedaan struktural, alih-alih meninggalkan hasil kosong yang bisa disalahartikan sebagai kegagalan.
- Apakah data saya diunggah ke suatu tempat?
- Tidak. Parsing dan perbandingan berjalan secara lokal di peramban Anda memakai pustaka microdiff, jadi apa pun yang Anda tempel tidak dikirim ke wetool.site maupun server lain.
JSON diff dibanding diff teks biasa
Diff teks membandingkan baris karakter, sehingga kunci yang tertukar urutannya, perpindahan dari dua spasi ke empat, atau akhiran baris yang berbeda semuanya tampil sebagai perbedaan meski datanya identik, dan suntingan yang sesungguhnya terkubur dalam kebisingan itu. JSON diff memparsing kedua dokumen lebih dulu dan hanya melaporkan perbedaan semantik, sehingga urutan kunci dan pemformatan diabaikan. Pakai diff teks ketika byte persisnya penting, dan pakai yang ini ketika hanya datanya yang penting.
Membaca hasilnya tanpa salah tafsir
Perbandingan struktural menjawab satu pertanyaan sempit secara presisi, jadi ada gunanya memahami apa yang tabel ini sampaikan dan apa yang tidak.
- Daftar perubahan yang panjang dan terpusat pada satu array biasanya menandakan satu penyisipan atau penyusunan ulang, bukan banyak suntingan yang berdiri sendiri.
- Tipe itu penting: string 1 dan angka 1 adalah nilai yang berbeda dan dilaporkan sebagai perubahan.