Hoppa till innehåll
TextArray
100% lokalt

JSON diff

Jämför två JSON-dokument strukturellt och se alla tillagda, borttagna och ändrade värden efter dess sökväg.

Inmatning
Ändrade JSON
Utmatning

JSON diff

Klistra in den ursprungliga JSON i det första fältet och den ändrade versionen i det andra, och verktyget rapporterar varje skillnad genom sin sökväg: + user.roles[2] = "admin" för ett mervärde, − user.legacyId för ett borttaget, ~ user.name: "Anna" → "Eva" för en ändring. Jämförelsen är strukturell, inte textuell – båda dokumenten analyseras och deras värden jämförs rekursivt, så omformatering, indrag och ordningen på objektnycklarna räknas aldrig som skillnader. Det är precis vad en vanlig textdiff får fel om JSON.

Nå det när två API-svar ska matcha men inte gör det: iscensättning mot produktion, gårdagens nyttolast mot dagens, svaret före och efter en implementering. Det är lika användbart för konfigurationsdrift - två exporterade konfigurationsfiler som växte isär med tiden - och för felsökning av serialiserat tillstånd, där en enda ändrad flagga gömmer sig i kilobyte av kapslade objekt.

Matriselement jämförs med index, så en förskjuten lista visas som en serie ändringar. När ordning verkligen inte spelar någon roll - taggar, behörighetslistor - aktivera "Ignorera arrayordning" och arrayer matchas som multiset: endast genuint tillagda eller borttagna element rapporteras. "Visa oförändrade värden" listar dessutom varje oförändrad sökväg, vilket förvandlar utdata till en fullständig kommenterad inventering av dokumentet.

Båda dokumenten tolkas och jämförs helt och hållet i din webbläsare. Ingenting laddas upp, så produktionsnyttolaster, tokens och kunddata inuti din JSON stannar på din enhet.

FAQ

Hur skiljer sig detta från en textdiff?
En textdiff jämför rader, så omformatering eller omordnade nycklar ser ut som ändringar. Det här verktyget analyserar båda dokumenten och jämför värden strukturellt - endast verkliga skillnader i data rapporteras.
Spelar ordningen på objektnycklarna någon roll?
Nej. {"a":1,"b":2} och {"b":2,"a":1} är identiska. Objekt jämförs med nyckel, inte efter position.
Hur jämförs matriser?
Genom index: det tredje elementet i originalet jämförs med det tredje elementet i det ändrade dokumentet. Aktivera "Ignorera arrayordning" för att matcha arrayer som multiset istället, så att omordning inte rapporteras som en skillnad.
Vad betyder vägarna i utgången?
Prickar går ner i objekt och parenteser i arrayer — user.roles[2] är det tredje elementet i roller array inuti användaren. Nycklar som inte är vanliga identifierare citeras inom parentes.
Är min JSON uppladdad någonstans?
Nej. Båda dokumenten tolkas och jämförs helt och hållet i din webbläsare och lämnar aldrig din enhet.