JSON Structural Diff

About the JSON Structural Diff

Comparing two JSON documents as plain text is misleading — reordering keys or reformatting whitespace can make a line-based diff show changes that don't actually matter, while missing real changes buried in reformatted lines.

This tool compares two JSON documents structurally — by their actual keys and values — so you see only the additions, removals, and value changes that matter, regardless of formatting or key order.

How it works

Common use cases

Frequently asked questions

How is this different from a plain text diff on JSON?

A structural diff parses both documents and compares them by key and value, so reordered keys or different indentation don't produce false differences — only genuinely different or missing/added fields are reported.

What do 'added', 'removed', and 'changed' mean in the result?

'Added' means a key exists in the modified JSON but not the original; 'removed' means the reverse; 'changed' means the key exists in both but its value is different.

Does this work with deeply nested objects and arrays?

Yes — the comparison recurses into nested objects and arrays, reporting differences at whatever depth they actually occur, with a path showing exactly where in the structure the difference is.

Why did I get an 'Invalid JSON' error?

One or both of the documents you pasted isn't valid JSON — check for the same common issues as any JSON error, like trailing commas, unquoted keys, or mismatched brackets, before comparing again.

This tool runs entirely in your browser — nothing you enter is sent to a server. Read more in the Privacy Policy, or browse the full list of tools.