Cara memakai
- Tempel JSON lama ke JSON kiri dan JSON baru ke JSON kanan.
- Centang Abaikan urutan item larik jika larik merupakan himpunan, seperti daftar tag.
- Baca tabel Perbedaan. Setiap baris memberi Jalur (JSON Pointer) nilainya, dan salin JSON Patch ketika Pemeriksaan patch menyatakan bahwa patch itu berlaku.
Cara dokumen dibandingkan
Kedua dokumen dibandingkan berdasarkan nilai. Urutan nama dalam objek tidak penting, karena JSON mendefinisikan objek sebagai himpunan anggota. Urutan item dalam larik penting, kecuali Anda mencentang opsi itu, karena larik adalah daftar berurutan.
Angka dibandingkan sebagai angka, sehingga 1 dan 1.0 sama. RFC 8259 bagian 6 menyatakan bahwa bilangan bulat dari -(2^53)+1 sampai (2^53)-1 dibaca sama oleh setiap implementasi, dan bilangan bulat yang lebih panjang dapat dibulatkan saat dibaca.
Jalur dan patch
Jalur adalah JSON Pointer (RFC 6901): setiap langkah berupa nama atau indeks, dipisahkan garis miring. Item pertama dari daftar tag adalah /tags/0, dan jalur kosong adalah seluruh dokumen. Garis miring di dalam nama ditulis ~1, dan tilde ditulis ~0.
JSON Patch (RFC 6902) memakai tiga operasi: add, remove dan replace. Item larik yang dihapus diambil dari yang terakhir ke belakang, sehingga setiap indeks tetap benar saat dipakai, dan item yang ditambahkan dilampirkan dengan indeks "-", yang oleh RFC 6902 didefinisikan sebagai akhir larik.
Mengabaikan urutan larik
Dengan opsi tercentang, item dicocokkan berdasarkan nilainya, di mana pun posisinya. Item yang tidak punya pasangan dilaporkan sebagai ditambahkan atau dihapus. Larik yang berbeda diganti seluruhnya di dalam patch, karena patch yang hanya memindahkan item perlu tahu bagaimana mereka berpindah. Patch lalu memberikan larik dengan urutan dokumen kanan.
Contoh: dokumen bawaan
Dokumen kiri memiliki nama FireToolLand, versi 1, tag json dan csv, serta free bernilai true. Dokumen kanan memiliki versi 2, tag csv, json dan yaml, serta license bernilai null. Dibaca berurutan, perbedaannya ada enam: version, dua tag yang diubah, tag yaml yang ditambahkan, free yang dihapus, dan license yang ditambahkan.
Dengan Abaikan urutan item larik tercentang, tag adalah dua item yang sama dalam urutan lain, sehingga satu-satunya perbedaan tag adalah yaml, dan jumlahnya turun menjadi empat.
| Hasil | Teks bawaan | Urutan diabaikan |
|---|---|---|
| Jumlah perbedaan | 6 | 4 |
| Ringkasan | 2 ditambahkan, 1 dihapus, 3 diubah. | 2 ditambahkan, 1 dihapus, 1 diubah. |
Pertanyaan yang sering diajukan
Mengapa urutan item larik penting?
Dalam JSON larik adalah daftar berurutan, sehingga [1,2] dan [2,1] adalah data yang berbeda. Centang Abaikan urutan item larik ketika larik itu himpunan, seperti daftar tag atau izin.
Apa arti jalur seperti /tags/0?
Itu adalah JSON Pointer (RFC 6901): anggota tags, lalu item pertamanya, karena indeks dihitung dari 0. Jalur kosong berarti seluruh dokumen, dan nama yang berisi garis miring ditulis dengan ~1 sebagai gantinya.
Apakah 1 dan 1.0 nilai yang sama?
Ya. Keduanya adalah angka satu, sehingga halaman tidak melaporkan perbedaan. Bilangan bulat di atas 2^53 dapat dibulatkan oleh pengurai JSON, jadi bandingkan pengenal panjang sebagai teks.
Untuk apa JSON Patch dipakai?
Ia adalah daftar langkah (RFC 6902) yang diterapkan server atau pustaka pada satu dokumen untuk mendapatkan dokumen lain, misalnya untuk memperbarui berkas pengaturan yang tersimpan. Pemeriksaan patch menunjukkan bahwa langkah-langkah itu menghasilkan dokumen yang benar.
Mengapa seluruh larik diganti ketika urutan diabaikan?
Dengan urutan diabaikan, larik yang berubah tidak punya satu langkah tunggal yang mengubahnya menjadi larik yang benar tanpa tahu bagaimana item-itemnya berpindah. Karena itu patch menulis larik yang benar secara lengkap.
Apakah JSON saya dikirim ke suatu tempat?
Tidak. Kedua teks dibaca dan dibandingkan di peramban Anda, dan tidak ada yang Anda tempel yang dikirim ke server kami atau disimpan di sana.
Sumber
- RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format (dalam bahasa Inggris)
- RFC 6901: JavaScript Object Notation (JSON) Pointer (dalam bahasa Inggris)
- RFC 6902: JavaScript Object Notation (JSON) Patch (dalam bahasa Inggris)
Angka dan teks terakhir diperiksa pada Selasa, 10 November 2026.