$.users[0].name changedOriginal path: $.users[1].name · Changed path: $.users[0].name
Before
GraceAfter
Grace HopperCompare API responses by array index or record ID, ignore volatile fields, and export the changes with their JSONPaths.
Added
0
Removed
0
Changed
1
Use a unique string or safe integer field in every object array, including nested arrays. Primitive arrays still compare by index.
Use slash paths such as /generatedAt. A * segment matches one property or array index. Use ~1 for / and ~0 for ~ in property names.
Large integer IDs must be quoted strings. Decimal values use JavaScript number precision. The sample ignores timestamps and matches users by id.
Comparison complete
Found 1 difference under the selected comparison rules. Ignored 3 matching fields.
$.users[0].name changedOriginal path: $.users[1].name · Changed path: $.users[0].name
Before
GraceAfter
Grace HopperThe JSON Diff Tool parses two documents and compares their actual data structures. It reports added properties or array items, removed values, changed values, and unchanged branches. Each result includes a JSONPath so the difference can be located in the original documents.
Unlike a line-based text comparison, whitespace and object property order do not create false differences. Array index mode preserves order. Record ID mode matches object-array records by a unique field, so reordered records do not create changes. Primitive arrays always compare by index.
Use Record ID mode with a unique string or safe integer field such as id. Enter ignored paths one per line, for example /generatedAt and /users/*/updatedAt. A * segment matches one property or array index. Duplicate IDs produce an error instead of an ambiguous result.
Follow the worked examples for comparing JSON arrays by ID and ignoring API timestamps.
Large integer IDs must be quoted strings; decimal values use JavaScript number precision. Reports contain up to 1,000 rows and explicitly mark partial results. A partial report does not establish equality.
Enable unchanged rows when you need context around the differences. The exported diff contains the comparison rules, a summary, ignored-field count and change entries, making it easier to share a focused result. The report still contains the before and after values of changed entries, including whole added or removed objects.
Format malformed input with the JSON Formatter before comparing it. Use the JSONPath Tester to query a path discovered in the diff.