Skip to main content

Runs locally in your browser

JSON Diff

Compare two JSON documents structurally. Find added, removed, and changed values by path without differences caused by whitespace or property order.

+ 2 added− 1 removed~ 1 changed
changed$.version
Before: 1
After: 2
added$.features[2]
After: "compare"
removed$.private
Before: true
added$.local
After: true

✓ Compared structurally in your browser

Compare JSON by structure, not formatting

JSON Diff parses both documents before comparing them. Indentation, spaces, and object property order are ignored, so the result focuses on actual values, missing keys, new keys, and array items.

Read changes using JSON paths

Each difference includes a path from the root value to the changed field or array index. Use these paths to investigate API responses, configuration changes, test fixtures, or generated data.

Frequently asked questions

How is JSON Diff different from Text Diff?

JSON Diff parses both documents and compares object keys and array indexes. Formatting and property order do not create changes, while Text Diff compares literal lines.

How are arrays compared?

Array items are compared by their numeric index. Inserting an item near the beginning can therefore produce several subsequent changes.

What does the $ symbol mean in a path?

$ represents the root JSON value. Object fields use dot or bracket notation and array items use numeric brackets, such as $.users[0].name.

Is either JSON document uploaded?

No. Parsing and structural comparison happen locally in your browser.

Related tools