JSON Diff: JSON objektumok összehasonlítása
Illessz be két JSON dokumentumot, és pontosan látod, mi változott. Minden eltérés útvonal szerint jelenik meg, például $.users[2].email, a formázás vagy a kulcssorrend pedig sosem okoz téves riasztást.
A böngésződben futNincs regisztrációNincs feltöltés
Módosult útvonalak
| Változás | Útvonal | Régi érték | Új érték |
|---|
Hogyan használd: JSON Diff
- Illeszd be bal oldalra az eredeti, jobb oldalra a módosított JSON-t, vagy nyiss meg két fájlt.
- A szintaktikai hibák sorral és oszloppal jelennek meg az egyes mezők alatt, így gyorsan javíthatod őket.
- Nézd meg a Módosult útvonalak táblázatot: minden sor megmutatja, hogy egy értéket hozzáadtak, töröltek vagy módosítottak, a régi és az új értékkel együtt.
- Jelöld be a Tömbsorrend figyelmen kívül hagyása opciót, ha a listák halmazok, például címkék vagy jogosultságok.
- Görgess az egymás melletti nézethez, hogy kontextusban lásd a változásokat, vagy másold ki a változáslistát JSON-ként.
Miért jobb a strukturális JSON diff a szöveges diffnél?
Egy egyszerű szöveges diff karaktereket és sorokat hasonlít össze, így két azonos adatot tartalmazó JSON fájl teljesen eltérőnek tűnhet, ha az egyik minifikált, másképp van behúzva, vagy más a kulcsok sorrendje. Ez az eszköz előbb mindkét dokumentumot feldolgozza, és az adatokat hasonlítja össze: az objektumokat kulcsonként, sorrendtől függetlenül, a számokat, stringeket, logikai értékeket és a null értéket pedig érték szerint. Csak a valódi változásokat jelzi.
Hogyan jelennek meg a változások?
Minden eltérés JSONPath-stílusú helyet kap, például $.owner.email vagy $.items[3].price, és a három típus egyikét:
- hozzáadva: a kulcs vagy tömbelem csak a módosított JSON-ban létezik.
- eltávolítva: csak az eredeti JSON-ban létezik.
- módosítva: mindkettőben létezik, de az érték eltér, beleértve a típusváltozást is, például ha egy stringből szám lesz.
A tömböket leghosszabb közös részsorozat (LCS) algoritmus igazítja össze, így ha egy lista elejére beszúrsz egy elemet, az egyetlen hozzáadásként jelenik meg, ahelyett hogy minden következő elem módosítottnak számítana.
A tömbsorrend figyelmen kívül hagyása
Sok API olyan listákat ad vissza, amelyek sorrendjének nincs jelentése, például szerepköröket, címkéket vagy azonosítókat. Ha a Tömbsorrend figyelmen kívül hagyása be van kapcsolva, a tömbök gyűjteményként hasonlítódnak össze: egy elem csak akkor számít hozzáadottnak vagy eltávolítottnak, ha a másik oldalon nincs vele egyenlő párja. Az egymás melletti nézet ilyenkor rendezi a tömbelemeket, hogy az egyenlő listák egymás mellé kerüljenek.
Tipikus felhasználás
Hasonlítsd össze a staging és a production API-válaszait, ellenőrizd, mit változtatott egy migráció egy konfigurációs fájlban, nézd át két package.json vagy tsconfig fájl eltéréseit, és keresd meg a snapshot tesztek hibáit.
Gyakran ismételt kérdések
Számít a kulcsok sorrendje a JSON összehasonlításakor?
{"a":1,"b":2} és a {"b":2,"a":1} egyenlőnek számít. A tömbök sorrendje alapértelmezetten számít, mert a tömbök rendezettek, de ezt kikapcsolhatod a Tömbsorrend figyelmen kívül hagyása opcióval.Feltöltődik a JSON-om egy szerverre?
Mit jelentenek az olyan útvonalak, mint a $.users[2].email?
$ a dokumentum gyökere, a .users egy kulcs, a [2] pedig egy tömb harmadik eleme (az indexek 0-tól kezdődnek). A szóközt vagy speciális karaktert tartalmazó kulcsok szögletes zárójelbe kerülnek, például $["first name"].Az 1 egyenlő az 1.0-val?
1 és az "1", különbözik, és módosításként jelenik meg.