JSON dosyaları nasıl karşılaştırılır?
- Orijinal JSON'u sola, değiştirilmiş JSON'u sağa yapıştırın veya her iki tarafa birer dosya sürükleyin.
- Özeti ve fark listesini inceleyin: eklenen, silinen veya değişen her değer yoluyla birlikte gösterilir, örneğin
$.users[2].email. - Değişiklikleri bağlamı içinde görmek için aşağıdaki yan yana görünüme kaydırın. Liste öğelerinin sırası önemli değilse Dizi sırasını yok say seçeneğini işaretleyin.
Metin diff'i yerine anlamsal JSON diff
Düz metin diff'i bir anahtarın yeri değiştiğinde, girinti farklı olduğunda veya bir sayı farklı yazıldığında bile değişiklik bildirir. Bu JSON diff ise verinin kendisini karşılaştırır:
- Anahtar sırası yok sayılır –
{"a":1,"b":2}ile{"b":2,"a":1}eşittir. - Biçimlendirme yok sayılır – boşluklar, satır sonları ve girinti fark yaratmaz.
- Sayılar değerine göre karşılaştırılır –
1.0ile1eşittir. - Diziler hizalanır – tek bir öğe eklemek sonraki tüm öğeleri değişmiş olarak işaretlemez; değiştirilmiş nesneler en çok benzedikleri karşılıklarıyla eşleştirilir.
- Dizi sırasını yok say – dizileri sırasız koleksiyonlar olarak karşılaştırır; etiket, kimlik (ID) veya izin listeleri için kullanışlıdır.
Sonuçları yorumlama
| Etiket | Anlamı | Yolun gösterdiği yer |
|---|---|---|
| Eklendi | Değer yalnızca değiştirilmiş JSON'da var | değiştirilmiş JSON'daki konumu |
| Silindi | Değer yalnızca orijinal JSON'da var | orijinal JSON'daki konumu |
| Değişti | Anahtar her iki belgede de var, ancak değeri veya türü farklı | değiştirilmiş JSON'daki konumu |
Yan yana görünümde eşleşen satırların karşı karşıya gelmesi için her iki belge de anahtarları sıralanmış şekilde formatlanır; Değişmeyen satırları gizle seçeneğinin işaretini kaldırmadığınız sürece uzun değişmeyen bölümler daraltılır.
Sıkça sorulan sorular
Anahtarların sırası önemli mi?
Hayır. JSON nesneleri tanım gereği sırasızdır, bu yüzden karşılaştırma anahtar sırasını yok sayar. Diziler ise sıralıdır; Dizi sırasını yok say seçeneğini işaretlerseniz sıra dikkate alınmaz.
Büyük JSON dosyalarını karşılaştırabilir miyim?
Evet. Karşılaştırma tarayıcınızda çalışır ve ilk 200 farkı listeler; tümünü göstermek için bir düğme de vardır. Yan yana görünüm en fazla 5.000 satır gösterir.
Kodda JSON nasıl karşılaştırılır?
Python'da json.loads(a) == json.loads(b) eşitliği test eder. JavaScript'te yerleşik bir derin karşılaştırma yoktur; Lodash gibi kütüphaneler _.isEqual(a, b) sunar. Komut satırında diff <(jq -S . a.json) <(jq -S . b.json) farklı satırları gösterir.
Verilerim bir yere yükleniyor mu?
Hayır. Her iki belge de tarayıcınızda yerel olarak karşılaştırılır ve cihazınızdan asla çıkmaz.