İki JSON belgesini karşılaştırma
JSON karşılaştırma aracı iki belgeyi ayrıştırır ve eklenen, kaldırılan veya değişen değerleri yollarıyla birlikte gösterir. API yanıtları, uygulama ayarları ve küçük test çıktıları arasındaki farkları incelemek için kullanılabilir. Sol alana önceki veriyi, sağ alana yeni veriyi yerleştirin ve karşılaştır düğmesine basın. Sonuçtaki before alanı eski değeri, after alanı yeni değeri taşır. Bir belge geçersizse diğer belgeyle karşılaştırma yapılmaz. Metinsel düzenleme farkları yerine ayrıştırılmış JSON değerleri üzerinde çalışıldığı için girinti veya satır düzeni sonucu değiştirmez.
Nesne sırası ve değer türleri
Nesne anahtarlarının yazılış sırası eşitlik açısından önem taşımaz. {"a":1,"b":2} ile {"b":2,"a":1} aynı kabul edilir. Buna karşılık sayı 1 ile metin "1" farklıdır; mantıksal false ile metin "false" da eşit sayılmaz. Eksik özellik ve açıkça yazılmış null birbirinden ayrılır. Bu ayrım özellikle isteğe bağlı API alanlarını incelerken yararlıdır. Bir alan kaldırılırsa sonuç removed türünde görünür; null yapılırsa changed olarak görünür. Unicode kaçışları ayrıştırılır; aynı karakterin doğrudan ve kaçışlı yazılması fark oluşturmaz.
Diziler konumlarına göre karşılaştırılır
Dizilerde sıralama anlamlıdır ve öğeler sıfırdan başlayan indisleriyle eşleştirilir. [1,2] ile [2,1] iki konum değişikliği üretir. Başına yeni bir kayıt eklenmesi sonraki bütün konumları farklı gösterebilir. Araç kimlik alanı aramaz, taşınan kayıtları tanımaz ve en kısa düzenleme dizisini hesaplamaz. Kimlikle eşleşen kayıtların farkını görmek istiyorsanız önce iki diziyi aynı kurala göre hazırlayın veya kimlikleri nesne anahtarına dönüştürün. Böyle bir ön işlem iş mantığınıza bağlıdır; özellikle yinelenen kimliklerin bulunabileceği veride rastgele sıralama kullanmayın.
JSON Pointer yollarını okuma
Her farkın path alanı JSON Pointer biçimini kullanır. /users/0/name yolu users dizisinin ilk öğesindeki name alanını belirtir. Anahtardaki eğik çizgi ~1, tilde karakteri ~0 olarak kaçırılır; böylece a/b adlı tek anahtar iki ayrı düzey gibi görünmez. Kök değerin değişmesi boş metin yolu ile gösterilir. Eklenen değerde before, kaldırılan değerde after alanı bulunmaz. Bu yokluk null değerinden farklıdır. İndirilen rapor JSON biçimindedir ancak otomatik uygulanabilen JSON Patch belgesi değildir; kind, before ve after alanları inceleme amacıyla sunulur.
Sınırlar ve güvenilir sayı karşılaştırması
Her belge en fazla 500.000 UTF-16 kod birimi ve 64 iç içe düzey içerebilir. En fazla bin fark listelenir; daha fazla fark bulunduğunda truncated değeri true olur ve durum alanında kesilme açıklanır. Böyle bir raporu tam eşitlik denetimi veya bütün değişikliklerin listesi olarak değerlendirmeyin. Yinelenen nesne anahtarları reddedilir çünkü farklı ayrıştırıcılar bunları farklı yorumlayabilir. JavaScript tarafından güvenle temsil edilemeyen tam sayılar ve on beşten fazla anlamlı basamak taşıyan sayılar kabul edilmez. Hassas tutarları ve uzun kimlikleri metin olarak karşılaştırın.
Örnek ve yerel çalışma
Örnek olarak {"active":true} ile {"active":false,"name":"İpek"} karşılaştırıldığında /active yolunda bir değişiklik ve /name yolunda bir ekleme bulunur. Raporu kopyalayabilir veya .json dosyası olarak indirebilirsiniz. Araç birleştirme yapmaz, dosyaların içeriğini değiştirmez ve sunucuya veri göndermez. Paylaşım düğmesi varsayılan olarak yalnız sayfa adresini kopyalar. Girdileri bağlantıya ekleme seçeneği işaretlenirse küçük belgeler bağlantı parçasına yazılır ve alıcı tarafından okunabilir. Gizli erişim anahtarlarını, müşteri kayıtlarını veya üretim parolalarını böyle bağlantılarla paylaşmayın. Sonuç kullanıcı verisini çalıştırılabilir HTML olarak yorumlamadan metin alanında gösterir.
Sık sorulan sorular
Anahtar sırası fark sayılır mı?
Hayır. Nesne anahtarlarının sırası dikkate alınmaz. Dizi öğelerinin sırası ise anlamlıdır; konum değişince fark üretilir. Raporun ne anlattığını değerlendirirken kaynağın nesne mi dizi mi olduğunu kontrol edin.
Null ile eksik alan aynı mı?
Hayır. Bir anahtarın hiç bulunmaması, o anahtarın null değerini taşımasından farklıdır. Rapor eklenen ve kaldırılan alanları ayrıca gösterir; bu ayrım API sözleşmesi değişikliklerini incelemeyi kolaylaştırır.
Rapor doğrudan uygulanabilir mi?
Bu çıktı JSON Patch değildir. Alanların eski ve yeni değerlerini incelemek için hazırlanmış bir rapordur. Otomatik birleştirme veya dosyaya uygulama yapılmaz; gerekli değişiklikleri uygulamanızın kurallarına göre değerlendirin.
Büyük belgelerde bütün farklar görünür mü?
En fazla bin fark gösterilir. Kesilme durumunda truncated true olur ve durum mesajı görünür. Daha büyük belgeler için yerel komut satırı araçlarıyla parçalı inceleme yapın; rapor sınırını tam değişiklik listesi sanmayın.