tigtools

JSON Diff

Illesszen be két JSON-dokumentumot, hogy pontosan lássa, mely értékek különböznek, útvonalak szerint felsorolva, például $.order.items[2].price.

Böngészőben fut Regisztráció nélkül

Tömbök összehasonlítása
Megjelenítés

Használata

  1. Illessze be az eredeti JSON-t balra, a módosított JSON-t jobbra, vagy próbálja ki a példát.
  2. Válassza ki, hogyan legyenek a tömbök összehasonlítva: pozíció szerint, vagy az elemek egyeztetésével, így egy beszúrt elem csak egyszer jelenik meg.
  3. Olvassa el a különbségeket listaként vagy egymás mellett. Mindegyik útvonallal rendelkezik a gyökértől ($).
  4. Másolja ki a jelentést, hogy beillessze egy hibajegybe vagy kódellenőrzésbe.

Hogyan működik

Mindkét dokumentumot adatként elemezzük és hasonlítjuk össze, nem szövegként. Az objektumokat kulcsonként hasonlítjuk össze, így a kulcsok sorrendje, a szóközök és a behúzás nem számít. A számokat érték szerint hasonlítjuk össze, így az 1 és az 1.0 egyenlő.

Minden eltéréshez tartozik egy elérési út JSONPath-kifejezésként: a $ a gyökér, a .name egy tulajdonság, a [2] egy tömbelem indexe, a nem egyszerű nevű kulcsok pedig idézőjelbe kerülnek, például: $["first-name"]. Négyféle eltérést jelzünk: hozzáadva (csak a jobb oldalon), eltávolítva (csak a bal oldalon), megváltozott (azonos típus, eltérő érték) és típusváltás (például a 44.9 szám a "44.90" szövegre változott, vagy egy érték null lett). Ha egy teljes objektum vagy tömb kerül hozzáadásra vagy eltávolításra, azt egyszer, a saját elérési útján jelezzük, nem mezőnként.

A tömböket alapértelmezés szerint pozíció szerint hasonlítjuk össze: a 0. elemet a 0. elemmel, az 1. elemet az 1. elemmel. Ha egy elem a lista elejére kerül be, akkor minden későbbi elem megváltozottnak tűnik. Az „Áthelyezett elemek párosítása” először a leghosszabb közös részsorozat alapján összerendeli a két tömböt, így egy beszúrás vagy törlés csak egyszer jelenik meg, a többi elem pedig párosítva lesz. A hozzáadott elemek a jobb oldali, az eltávolított elemek a bal oldali indexüket használják. A párosítást nagyon nagy tömbök esetén kihagyjuk (körülbelül 2 millió elempár felett), ezeket ekkor pozíció szerint hasonlítjuk össze.

A listában szereplő kulcs-útvonalak az egyes objektumokon belül ábécé szerint vannak rendezve. Legfeljebb 2 000 eltérést jelenítünk meg; a másolt jelentés mindig az összeset tartalmazza.

Példák

API-változás ellenőrzése

Hasonlítsa össze ugyanannak a rendelésnek a tegnapi és a mai válaszát. Az eltérés szerint a $.status "pending" értékről "shipped" értékre változott, a $.total típusa számról szövegre váltott, a $.coupon eltávolításra került, a $.customer.phone pedig hozzáadásra.

Konfigurációs eltérés

Illessze be a JSON-konfigurációt a staging és a production környezetből. Mivel a kulcsok sorrendje nem számít, csak a valódi eltérések jelennek meg, például $.cache.ttl 300 → 60, akkor is, ha a fájlokat különböző eszközök mentették.

Listák beszúrt elemmel

Egy terméklista új első elemet kapott. Pozíció szerint minden termék megváltozottnak tűnik; az „Áthelyezett elemek párosítása” funkcióval az eredmény egyetlen „Hozzáadva: $[0]” sor.

Gyakori kérdések

Miben más ez, mint egy szöveges diff?

A szöveges diff sorokat hasonlít össze, ezért a kulcsok sorrendjének megváltoztatása vagy az újraformázás is változásként jelenik meg. Ez az eszköz az elemzett adatokat hasonlítja össze, így csak az értékek, típusok és a szerkezet eltérései jelennek meg.

Miért mutat egy tömb sok módosítást egyetlen beszúrás után?

A „Pozíció szerint” módban az elemek azonos indexen kerülnek összehasonlításra, és egy beszúrás minden későbbi elemet eltol. Váltson a „Mozgatott elemek párosítása” módra, hogy először az egyező elemeket igazítsa egymáshoz.

A "1" és az 1 egyenlőként kezelendő?

Nem. Az egyik karakterlánc, a másik szám, ezért az eltérés típusváltozásként jelenik meg. Az azonos típusú értékek pontosan összehasonlításra kerülnek.

Össze tudok hasonlítani nagyon nagy fájlokat?

A néhány megabájtos fájlok működnek, de minden a böngésző memóriájában kerül feldolgozásra, így a nagyon nagy dokumentumok lassúak lehetnek telefonon.

Adatvédelem

Mindkét dokumentum csak az Ön böngészőjében kerül elemzésre és összehasonlításra. Semmi sem kerül feltöltésre, tárolásra vagy bele az analitikába.