JSON Diff

Semantic, key-aware diff between two JSON documents with added / removed / changed paths.

No differences
JSON values are semantically equal.

About JSON Diff

JSON Diff produces a key-aware comparison between two JSON documents. Instead of treating the input as plain text and reporting per-line changes, the tool parses both sides and reports differences by JSON path: keys added, keys removed, values changed, types changed. Output paths use JSON Pointer syntax (`/users/0/name`), so each difference points exactly to the offending location.

This is the human-readable counterpart of JSON Patch. Both compare two documents; this one is for reading the result, the other is for applying it. Reach for Diff when reviewing two API responses, comparing config snapshots from different environments, auditing what changed between two versions of a fixture, or sanity-checking a refactor that should be a no-op. Object key order is ignored by default — `{a:1,b:2}` and `{b:2,a:1}` compare equal — so you do not need to sort keys first. Array order, however, is significant.

Examples

Input
A: {"name":"Ada","born":1815}
B: {"name":"Ada","born":1816}
Output
changed: /born — was 1815, now 1816

A single value change, addressed by JSON Pointer. Identical paths on both sides with equal values are not reported.

Frequently asked questions

How is this different from JSON Patch?

Diff is for humans; Patch is for machines. Same comparison, different output. Use Diff to review changes in a code review; use Patch when a system needs to apply them programmatically.

Does it ignore key order?

Yes for objects (key order is not semantically significant in JSON). No for arrays — `[1,2]` and `[2,1]` are different documents and the tool reports the difference.

What if I want to ignore some fields, like timestamps?

Run the inputs through JSON Property Editor first to remove the noisy fields, then compare. Or use JSONPath to extract only the fields you care about and diff the extracted subsets.

How is this different from Diff Viewer?

Diff Viewer compares any text line-by-line. JSON Diff parses both sides as JSON and reports semantic differences. Use Diff Viewer when you want to see the textual delta between two JSON files; use this tool when you want to know what changed regardless of formatting.