Nasıl kullanılır?
- Eski JSON'u Soldaki JSON alanına, yeni JSON'u Sağdaki JSON alanına yapıştırın.
- Diziler küme gibiyse, örneğin etiket listeleri, Dizi öğelerinin sırasını yok say kutusunu işaretleyin.
- Farklar tablosunu okuyun. Her satır değerin Yol (JSON Pointer) bilgisini verir; Yama kontrolü uyguladığını söylediğinde JSON Patch alanını kopyalayın.
Belgeler nasıl karşılaştırılır
İki belge değerlerine göre karşılaştırılır. Bir nesnedeki adların sırası önemli değildir; çünkü JSON bir nesneyi üyelerin kümesi olarak tanımlar. Bir dizinin öğelerinin sırası ise önemlidir; seçeneği işaretlemediğiniz sürece, çünkü dizi sıralı bir listedir.
Sayılar sayı olarak karşılaştırılır; bu yüzden 1 ile 1.0 eşittir. RFC 8259 bölüm 6, -(2^53)+1 ile (2^53)-1 arasındaki tam sayıların her uygulamada aynı okunduğunu söyler; bundan uzun bir tam sayı okunurken yuvarlanabilir.
Yollar ve yama
Bir yol, bir JSON Pointer'dır (RFC 6901): her adım bir ad ya da bir dizin olup eğik çizgilerle ayrılır. Etiket listesinin ilk öğesi /tags/0'dır; boş yol tüm belgeyi gösterir. Adın içindeki eğik çizgi ~1, tilde ise ~0 olarak yazılır.
JSON Patch (RFC 6902) üç işlem kullanır: add, remove ve replace. Silinen dizi öğeleri sondan başa doğru alınır; böylece her dizin kullanıldığında doğru kalır. Eklenen öğeler, RFC 6902'nin dizinin sonu olarak tanımladığı "-" dizini ile eklenir.
Dizi sırasını yok saymak
Seçenek işaretlendiğinde öğeler konumlarından bağımsız olarak değerlerine göre eşleştirilir. Eşi olmayan öğeler eklenmiş ya da silinmiş sayılır. Farklı olan bir dizi yamada bütünüyle değiştirilir; çünkü yalnızca öğeleri taşıyan bir yama, öğelerin nasıl taşındığını bilmeyi gerektirirdi. Yama, diziyi sağdaki belgenin sırasıyla verir.
Örnek: varsayılan belgeler
Soldaki belgede ad FireToolLand, sürüm 1, etiketler json ve csv, free ise true. Sağdaki belgede sürüm 2, etiketler csv, json ve yaml, license ise null. Sırayla okunduğunda altı fark vardır: sürüm, değişen iki etiket, eklenen yaml etiketi, silinen free ve eklenen license.
Dizi öğelerinin sırası yok sayıldığında etiketler farklı sırada aynı iki öğedir; etiketlerdeki tek fark yaml olur ve fark sayısı dörde düşer.
| Sonuç | Varsayılan metinler | Sıra yok sayıldı |
|---|---|---|
| Fark sayısı | 6 | 4 |
| Özet | 2 eklendi, 1 silindi, 3 değişti. | 2 eklendi, 1 silindi, 1 değişti. |
Sık sorulan sorular
Dizi öğelerinin sırası neden önemli?
JSON'da bir dizi sıralı bir listedir; bu yüzden [1,2] ile [2,1] farklı verilerdir. Dizi bir küme ise, örneğin etiket ya da izin listesi, dizi öğelerinin sırasını yok sayın.
/tags/0 gibi bir yol ne anlama gelir?
Bu bir JSON Pointer'dır (RFC 6901): tags üyesi, ardından ilk öğesi; dizinler 0'dan sayılır. Boş yol tüm belgeyi gösterir; adın içindeki eğik çizgi ~1 ile yazılır.
1 ile 1.0 aynı değer mi?
Evet. İkisi de bir sayıdır; bu yüzden sayfa fark göstermez. 2^53'ten büyük tam sayıları bir JSON çözümleyicisi yuvarlayabilir; bu yüzden uzun kimlik numaralarını metin olarak karşılaştırın.
JSON Patch ne için kullanılır?
Bir belgeye uygulandığında başka bir belgeyi veren adımların listesidir (RFC 6902); örneğin kayıtlı bir ayar dosyasını güncellemek için kullanılır. Yama kontrolü, adımların doğru belgeyi verdiğini gösterir.
Sıra yok sayıldığında neden tüm dizi değiştiriliyor?
Sıra yok sayıldığında değişmiş bir dizi, öğelerinin nasıl taşındığını bilmeden doğru hâle getirilebilecek tek bir adıma sahip değildir. Bu yüzden yama, doğru diziyi tamamen yazar.
JSON'um bir yere gönderiliyor mu?
Hayır. İki metin de tarayıcınızda okunur ve karşılaştırılır; yapıştırdığınız hiçbir şey sunucumuza gönderilmez ve orada saklanmaz.
Kaynaklar
- RFC 8259: JavaScript Nesne Gösterimi (JSON) Veri Değişim Biçimi
- RFC 6901: JavaScript Nesne Gösterimi (JSON) Pointer
- RFC 6902: JavaScript Nesne Gösterimi (JSON) Patch
Rakamlar ve metin en son 10 Kasım 2026 Salı tarihinde kontrol edildi.