JSON Patch Üretici
İki JSON belgesini karşılaştırın ve ilkini ikincisine dönüştüren RFC 6902 yamasını alın. Her şey tarayıcınızda çalışır.
Bu araç ne yapar
İki JSON belgesini karşılaştırır ve ilkini ikincisine dönüştüren işlem listesini RFC 6902'nin tanımladığı biçimde yazar. Tek bir alanın değiştiğini söylemek için koca bir belge göndermek yerine, değişikliğin kendisini gönderirsiniz.
Ne zaman işe yarar
Bir PATCH isteğinin gövdesini kurmak, bir yapılandırma dosyasının iki sürümü arasında neyin değiştiğini kaydetmek ya da her tam kopyayı saklamaktan çok daha küçük bir denetim kaydı tutmak için. Aynı görünen iki belgenin gerçekte nerede ayrıldığını hızla öğrenmenin de bir yolu.
Ürettiği işlemler
| İşlem | Ne anlama gelir |
|---|---|
| add | Hiç değer olmayan yere bir değer ekler ya da bir diziye yerleştirir. |
| remove | O konumdaki değeri siler. |
| replace | Zaten var olan bir konumdaki değerin üzerine yazar. |
| move | Bir değeri bir konumdan başkasına taşır. |
| copy | Bir değeri başka bir konuma kopyalar. |
| test | Bir değeri denetler ve tutmuyorsa yamanın tamamını iptal eder. |
Bu araç yalnızca add, remove ve replace yazar. Bu üçü her değişikliği anlatmaya yeter ve satır satır okunabilen bir yama, üzerinde kafa yorulması gereken daha kısa bir yamadan değerlidir. Diğer üçü de RFC 6902'nin parçasıdır ve uyumlu her sunucu onları kabul eder.
Yollar nasıl çalışır
Her yol bir JSON Pointer'dır (RFC 6901): belgenin kökünden başlayan, eğik çizgilerle ayrılmış bir güzergâh; “/address/zipCode”, address içindeki zipCode alanı demektir. Dizi konumları sayıdır, yani “/skills/0” ilk öğedir; tire ise dizinin sonunu gösterir: “/skills/-” sona ekler. Ayırıcı eğik çizgi olduğu için, içinde eğik çizgi geçen bir anahtar ~1, gerçek bir tilde ise ~0 olarak yazılır.
Çıktı hakkında notlar
Karşılaştırma birebirdir: değerler konum konum karşılaştırılır, bu yüzden bir dizinin başına öğe eklemek tek bir ekleme yerine sonrasındaki her öğe için bir replace üretir. Kararlı kimlikleri olan nesne dizilerinde, kimliklerden üretilen bir yama her zaman konumlardan üretilenden küçük olur.
JSON Patch nasıl üretilir
İki JSON belgesi yapıştırın ve yamayı üretin.
- Özgün JSON'u sola yapıştırın.
- Değişmiş JSON'u sağa yapıştırın.
- Üret'e tıklayın, sonra yamayı kopyalayın.
Sık sorulan sorular
Bu araç verilerimi bir yere gönderiyor mu?
Hayır. İki belge de tarayıcınızda kalır ve yama kendi makinenizde üretilir.
Çıktı RFC 6902 uyumlu mu?
Evet. Her işlem op ve path içeren bir nesnedir; add ile replace'te ayrıca value bulunur ve yollar RFC 6901'in tanımladığı JSON Pointer'lardır.
move ve copy işlemlerini içeriyor mu?
Hayır. add, remove ve replace yazar; bunlar her değişiklik için yeterlidir ve okunması çok daha kolaydır. Bir move, aslında bir remove'un ardından gelen bir add'dir.
Yamayı nasıl uygularım?
application/json-patch+json kabul eden bir API'ye gönderin ya da bir kitaplık kullanın: Python'da jsonpatch, JavaScript'te json-patch, .NET'te JsonPatchDocument, Java'da json-patch ve benzeri.
JSON Merge Patch'ten farkı nedir?
JSON Merge Patch (RFC 7386) belgenin kendisine benzer ve null “sil” demektir. Bu onu okunaklı kılar ama gerçek bir null saklamasını ya da bir dizinin tek bir öğesine dokunmasını engeller. JSON Patch daha ayrıntılıdır, buna karşılık her şeyi anlatabilir.
Wikipedia — JSON Patch
Wikipedia — JSON
Wikipedia — Patch (computing)
Wikipedia — Diff
Wikipedia — REST