Pembuat JSON Patch
Bandingkan dua dokumen JSON dan dapatkan patch RFC 6902 yang mengubah yang pertama menjadi yang kedua. Semuanya berjalan di peramban Anda.
Apa yang dilakukan alat ini
Ia membandingkan dua dokumen JSON dan menuliskan daftar operasi yang mengubah yang pertama menjadi yang kedua, dalam format yang ditetapkan RFC 6902. Alih-alih mengirim satu dokumen utuh hanya untuk mengatakan sebuah ruas berubah, Anda mengirim perubahannya sendiri.
Kapan dipakai
Untuk menyusun badan permintaan PATCH, untuk mencatat apa yang berubah antara dua versi berkas konfigurasi, atau untuk menyimpan jejak audit yang jauh lebih kecil daripada menyimpan tiap salinan utuh. Ini juga cara cepat mengetahui apa yang sebenarnya berbeda di antara dua dokumen yang terlihat sama.
Operasi yang dihasilkannya
| Operasi | Artinya |
|---|---|
| add | Menambahkan nilai di tempat yang sebelumnya kosong, atau menyisipkan ke dalam sebuah larik. |
| remove | Menghapus nilai di tempat itu. |
| replace | Menimpa nilai di tempat yang sudah ada. |
| move | Memindahkan nilai dari satu tempat ke tempat lain. |
| copy | Menyalin nilai ke tempat lain. |
| test | Memeriksa sebuah nilai dan membatalkan seluruh patch bila tidak cocok. |
Alat ini hanya menulis add, remove, dan replace. Ketiganya sanggup menyatakan perubahan apa pun, dan patch yang bisa dibaca baris demi baris lebih berharga daripada patch lebih pendek yang harus diterka-terka. Tiga sisanya juga bagian dari RFC 6902 dan peladen mana pun yang patuh akan menerimanya.
Cara kerja jalurnya
Tiap jalur adalah JSON Pointer (RFC 6901): rute bertanda garis miring dari akar dokumen, di mana “/address/zipCode” berarti ruas zipCode di dalam address. Posisi dalam larik berupa angka, jadi “/skills/0” adalah butir pertama, dan tanda hubung berarti akhir larik: “/skills/-” menambahkan di ujung. Karena garis miring adalah pemisahnya, kunci yang memuat garis miring ditulis ~1, dan tilde sungguhan ditulis ~0.
Catatan tentang keluarannya
Pembandingannya harfiah: nilai diadu posisi demi posisi, sehingga menyisipkan satu butir di awal larik menghasilkan replace pada tiap butir sesudahnya, bukan satu penyisipan. Untuk larik objek yang punya pengenal tetap, patch yang dibuat dari pengenal selalu lebih kecil daripada yang dibuat dari posisi.
Cara membuat JSON Patch
Tempelkan dua dokumen JSON lalu buat patch-nya.
- Tempelkan JSON asli di sebelah kiri.
- Tempelkan JSON yang diubah di sebelah kanan.
- Klik Buat, lalu salin patch-nya.
Pertanyaan yang sering diajukan
Apakah alat ini mengirim data saya ke mana pun?
Tidak. Kedua dokumen tetap berada di peramban Anda dan patch dibuat di mesin Anda sendiri.
Apakah keluarannya sesuai RFC 6902?
Ya. Tiap operasi adalah objek dengan op, path, dan — untuk add dan replace — value, sedangkan jalurnya adalah JSON Pointer sebagaimana didefinisikan RFC 6901.
Apakah ada operasi move dan copy?
Tidak. Alat ini menulis add, remove, dan replace, yang cukup untuk perubahan apa pun dan jauh lebih mudah dibaca. Sebuah move tidak lain adalah remove yang diikuti add.
Bagaimana cara menerapkan patch-nya?
Kirim ke API yang menerima application/json-patch+json, atau pakai pustaka: jsonpatch di Python, json-patch di JavaScript, JsonPatchDocument di .NET, json-patch di Java, dan seterusnya.
Apa bedanya dengan JSON Merge Patch?
JSON Merge Patch (RFC 7386) berbentuk mirip dokumennya sendiri, dengan null yang berarti “hapus”. Itu membuatnya mudah dibaca, tetapi tidak sanggup menyimpan null yang sungguhan atau menyentuh satu butir saja dalam larik. JSON Patch lebih bertele-tele tetapi sanggup menyatakan apa saja.
Wikipedia — JSON Patch
Wikipedia — JSON
Wikipedia — Patch (computing)
Wikipedia — Diff
Wikipedia — REST