JSON Diff
Compare two JSON documents by structure and list every added, removed and changed value with its JSONPath, ignoring key order and whitespace.
Free · No sign-up · Your inputs stay in your browser
Input
Compare two JSON documents
Output
6 differences
| Path | Change | Before | After |
|---|---|---|---|
| $.version | changed | "1.4.0" | "1.5.0" |
| $.replicas | changed | 2 | 3 |
| $.env.LOG_LEVEL | changed | "info" | "debug" |
| $.env.CACHE | removed | "redis" | |
| $.env.QUEUE | added | "sqs" | |
| $.ports[2] | added | 9000 |
Compared by structure, so key order and whitespace never count as a change, and paths are written in JSONPath so they can be pasted into the JSONPath tester.
Runs in this browser. Nothing you paste is sent to a server.
About this tool
Method, assumptions, practical next steps, and limits.
Why not a text diff?
Two API responses with the same data can differ in key order and whitespace, and a line diff reports both. Comparing parsed structures shows only real changes, and reports them as paths such as $.env.LOG_LEVEL, which say what changed without reading the context.
Arrays
By default arrays are compared position by position, so inserting one element at the start makes every later one look changed. 'Ignore array order' compares them as sets instead, which suits lists of tags or permissions but hides real reordering. For lists of records with IDs, sort both by ID first.