tigtools

JSON Diff

İki JSON belgesini yapıştırın; hangi değerlerin farklı olduğunu $.order.items[2].price gibi yol bazında listelenmiş olarak görün.

Tarayıcınızda çalışır Kayıt gerekmez

Dizileri karşılaştır
Göster

Nasıl kullanılır?

  1. Orijinal JSON'u sola, değiştirilmiş JSON'u sağa yapıştırın veya örneği deneyin.
  2. Dizilerin nasıl karşılaştırılacağını seçin: konuma göre veya öğeleri eşleştirerek; böylece araya eklenen bir öğe yalnızca bir kez bildirilir.
  3. Farkları liste hâlinde veya yan yana görünümde inceleyin. Her farkın kökten ($) başlayan bir yolu vardır.
  4. Raporu kopyalayıp bir iş kaydına veya kod incelemesine yapıştırın.

Nasıl çalışır?

Her iki belge de metin olarak değil, veri olarak ayrıştırılır ve karşılaştırılır. Nesneler anahtar anahtar karşılaştırılır; bu nedenle anahtarların sırası ile boşluk veya girinti önemli değildir. Sayılar değere göre karşılaştırılır; bu nedenle 1 ile 1.0 eşittir.

Her farkın yolu bir JSONPath ifadesi gibi yazılır: $ kökü, .name bir özelliği, [2] bir dizi dizinini belirtir ve basit ad olmayan anahtarlar tırnak içine alınır; örneğin $["first-name"] gibi. Dört tür fark bildirilir: eklenen (yalnızca sağda), kaldırılan (yalnızca solda), değişen (aynı tür, farklı değer) ve tür değişen (örneğin 44.9 sayısının "44.90" dizesine dönüşmesi veya bir değerin null olması). Bir nesne veya dizinin tamamı eklendiğinde ya da kaldırıldığında, alan başına değil kendi yolunda bir kez bildirilir.

Diziler varsayılan olarak konuma göre karşılaştırılır: 0. öğe 0. öğeyle, 1. öğe 1. öğeyle. Başa bir öğe eklenirse sonraki tüm öğeler değişmiş gibi görünür. “Taşınan öğeleri eşleştir” önce iki diziyi eşit öğelerin en uzun ortak alt dizisini kullanarak hizalar; böylece bir ekleme veya silme yalnızca bir kez bildirilir ve kalan öğeler eşleştirilir. Eklenen öğeler sağdaki dizinini, kaldırılan öğeler soldaki dizinini kullanır. Çok büyük diziler için (yaklaşık 2 milyon öğe çiftinin üzerinde) eşleştirme atlanır; bu diziler konuma göre karşılaştırılır.

Listedeki anahtar yolları her nesne içinde alfabetik olarak sıralanır. En fazla 2.000 fark görüntülenir; kopyalanan rapor her zaman tümünü içerir.

Örnekler

Bir API değişikliğini kontrol etme

Aynı sipariş için dünkü ve bugünkü yanıtı karşılaştırın. Fark, $.status değerinin "pending" yerine "shipped" olduğunu, $.total değerinin türünün sayıdan dizeye değiştiğini, $.coupon öğesinin kaldırıldığını ve $.customer.phone öğesinin eklendiğini gösterir.

Yapılandırma sapması

Staging ve production ortamlarındaki JSON yapılandırmasını yapıştırın. Anahtar sırası dikkate alınmadığı için, dosyalar farklı araçlarla kaydedilmiş olsa bile yalnızca $.cache.ttl 300 → 60 gibi gerçek farklar görünür.

Araya öğe eklenmiş listeler

Bir ürün listesine yeni bir ilk öğe eklendi. Konuma göre karşılaştırmada her ürün değişmiş gibi görünür; “Taşınan öğeleri eşleştir” seçeneğiyle sonuç yalnızca “Eklendi $[0]” olur.

Sık sorulan sorular

Bunun metin tabanlı karşılaştırmadan farkı nedir?

Metin tabanlı karşılaştırma satırları karşılaştırır; bu nedenle anahtarların yeniden sıralanması veya biçimlendirmenin değişmesi fark olarak görünür. Bu araç ayrıştırılmış veriyi karşılaştırdığı için yalnızca değer, tür ve yapı farkları bildirilir.

Bir diziye tek bir öğe eklendiğinde neden birçok değişiklik görünür?

“Konuma göre” modunda öğeler aynı dizinde karşılaştırılır ve araya eklenen bir öğe sonraki tüm öğeleri kaydırır. Eşit öğeleri önce hizalamak için “Taşınan öğeleri eşleştir” moduna geçin.

"1" ile 1 eşit mi kabul ediliyor?

Hayır. Biri dize, diğeri sayı olduğu için fark tür değişikliği olarak raporlanır. Aynı türdeki değerler birebir karşılaştırılır.

Çok büyük dosyaları karşılaştırabilir miyim?

Birkaç megabaytlık dosyalar sorunsuz çalışır; ancak her şey tarayıcınızın belleğinde işlendiği için çok büyük belgeler telefonlarda yavaş olabilir.

Gizlilik

Her iki belge de yalnızca tarayıcınızda ayrıştırılır ve karşılaştırılır. Hiçbir şey yüklenmez, depolanmaz veya analizlere dâhil edilmez.