JSON Diff, aralarındaki eklenen, silinen ve değiştirilen alanları bulmak için iki JSON veri kümesini karşılaştırmak anlamına gelir. Günlük geliştirmede, genellikle iki JSON arasında 'tam olarak neyin farklı olduğunu' bilmemiz gerekir: bir API yükseltmesinden önce ve sonra yanıt yapısında neyin değiştiği, iki ortamdaki yapılandırmaların nerede farklı olduğu, otomatik testteki gerçek sonuçlar ile beklenen temel çizgiler arasında hangi alanın saptığı. Manuel satır satır kontrol yavaş ve hataya açıktır; bir JSON Diff aracı farkları otomatik olarak vurgulayabilir.
JSON fark karşılaştırması genellikle iki yaklaşımı izler. Biri 'metinsel fark'tır: JSON'u kurallı çok satırlı metin olarak biçimlendirdikten sonra, satır satır Git benzeri bir karşılaştırma yaparak her satırdaki ekleme, silme ve değiştirmeleri sezgisel olarak gösterir. Diğeri 'yapısal/anlamsal fark'tır: JSON'u bir ağaç yapısına ayrıştırır ve alan yoluna (örneğin user.address.city) göre değerleri ve türleri tek tek karşılaştırır, alan sıralaması, girinti veya diğer biçimlendirme faktörlerinden etkilenmez. Bu araç hem Metin Görünümü hem de Anlamsal Görünüm sağlar, gerektiğinde değiştirilebilir.
Karşılaştırmadan önce neden biçimlendirmelisiniz? Çünkü aynı veriler tamamen farklı biçimlendirmeye sahip olabilir (tek satır vs çok satır, 2 boşluk vs 4 boşluk girinti). Ham metin olarak doğrudan karşılaştırılırsa, biçimlendirme varyasyonlarından kaynaklanan birçok 'yanlış fark' ortaya çıkar. Bu araç, karşılaştırmadan önce her iki tarafı otomatik olarak ayrıştırır ve tek tip biçimde biçimlendirir, böylece boşluk parazitini ortadan kaldırarak yalnızca gerçekten anlamlı veri değişikliklerini görmenizi sağlar.
JSON nesnelerindeki anahtar sırasının anlamsal olarak önemli olmadığını ({"a":1,"b":2} ile {"b":2,"a":1} eşdeğerdir), ancak dizi öğe sırasının anlamlı olduğunu ([1,2] ile [2,1] farklıdır) unutmayın. Bu nedenle, sırayı önemsemeden yalnızca dizi içeriği tutarlılığıyla ilgilendiğinizde, sıra değişikliklerinin yanlışlıkla fark olarak tanımlanmasını önlemek için karşılaştırmadan önce dizileri veya anahtarları sıralamanızı öneririz.
Bu araçtaki tüm biçimlendirme ve karşılaştırma tarayıcıda yerel olarak yapılır; veriler hiçbir sunucuya yüklenmez. Ayrıca karakter düzeyinde vurgulama, ekleme/silme/değiştirme sayımı, çok sekmeli aynı anda karşılaştırma ve karşılaştırma senaryolarının URL ile paylaşılmasını destekler, API entegrasyonu, yapılandırma karşılaştırma, test iddiaları ve Kod İncelemesi senaryoları için uygundur.