JSON Diff: jämför JSON-objekt
Klistra in två JSON-dokument för att se exakt vad som ändrats. Varje skillnad listas med sökväg, som $.users[2].email, och formatering eller nyckelordning ger aldrig falsklarm.
Körs i din webbläsareIngen registreringInget laddas upp
Ändrade sökvägar
| Ändring | Sökväg | Gammalt värde | Nytt värde |
|---|
Så använder du JSON Diff
- Klistra in den ursprungliga JSON-koden till vänster och den ändrade till höger, eller öppna två filer.
- Syntaxfel visas under respektive ruta med rad och kolumn, så att du snabbt kan rätta dem.
- Läs tabellen Ändrade sökvägar: varje rad visar om ett värde lagts till, tagits bort eller ändrats, med gammalt och nytt värde.
- Markera Ignorera arrayordning när listorna är mängder, till exempel taggar eller behörigheter.
- Scrolla ner till vyn sida vid sida för att se ändringarna i sitt sammanhang, eller kopiera ändringslistan som JSON.
Varför en strukturell JSON-diff slår en textdiff
En vanlig textdiff jämför tecken och rader, så två JSON-filer med samma data kan se helt olika ut om den ena är minifierad, har annat indrag eller nycklarna i en annan ordning. Det här verktyget tolkar först båda dokumenten och jämför sedan datan: objekt jämförs nyckel för nyckel oavsett ordning, och tal, strängar, booleska värden och null jämförs efter värde. Endast verkliga ändringar rapporteras.
Hur ändringar rapporteras
Varje skillnad får en plats i JSONPath-stil, som $.owner.email eller $.items[3].price, och en av tre typer:
- tillagd: nyckeln eller arrayelementet finns bara i den ändrade JSON-koden.
- borttagen: den finns bara i den ursprungliga JSON-koden.
- ändrad: den finns i båda men värdet skiljer sig, inklusive typbyten som att en sträng blir ett tal.
Arrayer matchas med en algoritm för längsta gemensamma delsekvens (LCS), så om ett element infogas i början av en lista rapporteras det som ett enda tillägg i stället för att alla följande element markeras som ändrade.
Ignorera arrayordning
Många API:er returnerar listor där ordningen saknar betydelse, som roller, taggar eller ID:n. Med Ignorera arrayordning aktiverat jämförs arrayer som samlingar: ett element räknas bara som tillagt eller borttaget om det saknar en likadan motsvarighet på andra sidan. Vyn sida vid sida sorterar då arrayelementen så att likadana listor hamnar i linje.
Typiska användningsområden
Jämför API-svar mellan staging och produktion, se vad en migrering ändrade i en konfigurationsfil, granska skillnader mellan två package.json- eller tsconfig-filer och felsök snapshot-tester.
Vanliga frågor
Spelar nyckelordningen roll när JSON jämförs?
{"a":1,"b":2} och {"b":2,"a":1} rapporteras som lika. Arrayordningen spelar däremot roll som standard eftersom arrayer är ordnade, men du kan stänga av det med Ignorera arrayordning.Laddas min JSON upp till en server?
Vad betyder sökvägar som $.users[2].email?
$ är dokumentets rot, .users är en nyckel och [2] är det tredje elementet i en array (index börjar på 0). Nycklar med mellanslag eller specialtecken skrivs inom hakparenteser, som $["first name"].Är 1 lika med 1.0?
1 och "1", är olika och rapporteras som ändrade.