Pembuat JSON Patch
Bandingkan dua dokumen JSON dan dapatkan patch RFC 6902 yang mengubah yang pertama menjadi yang kedua. Semuanya berjalan di pelayar 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 medan berubah, anda mengirim perubahannya sendiri.
Kapan digunakan
Untuk menyusun badan permintaan PATCH, untuk mencatat apa yang berubah antara dua versi fail 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 tatasusunan. |
| 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 boleh dibaca baris demi baris lebih berharga daripada patch lebih pendek yang harus diterka-terka. Tiga sisanya juga bagian dari RFC 6902 dan pelayan 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 medan zipCode di dalam address. Posisi dalam tatasusunan berupa angka, jadi “/skills/0” adalah butir pertama, dan tanda hubung berarti akhir tatasusunan: “/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 tatasusunan menghasilkan replace pada tiap butir sesudahnya, bukan satu penyisipan. Untuk tatasusunan objek yang punya pengenal tetap, patch yang dibuat dari pengenal selalu lebih kecil daripada yang dibuat dari posisi.
Cara membuat JSON Patch
Tampalkan dua dokumen JSON lalu buat patch-nya.
- Tampalkan JSON asli di sebelah kiri.
- Tampalkan 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 pelayar 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 guna 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 tatasusunan. JSON Patch lebih bertele-tele tetapi sanggup menyatakan apa saja.
Wikipedia — JSON Patch
Wikipedia — JSON
Wikipedia — Patch (computing)
Wikipedia — Diff
Wikipedia — REST