Skip to main content
ToolsHub

JSON Diff Checker

Paste two JSON documents to see a structural, path-by-path diff of every added, removed, and changed value.

Updated

Files never leave your browser

2 differences

  • changed · version

    "1.0.0""1.1.0"

  • changed · tags[1]

    "b""c"

How to use JSON Diff Checker

The JSON diff checker compares two JSON documents structurally and reports exactly what changed, path by path. Unlike a plain text diff, it parses both documents so reordered keys or reformatting do not create false differences — it walks objects and arrays and lists every value that was added, removed, or changed, with the old and new values. It runs entirely in your browser, making it a fast, private way to spot the real differences between two JSON payloads.

  1. Paste the original JSON on the left.
  2. Paste the changed JSON on the right.
  3. Read the path-by-path list of added, removed, and changed values.
  4. Copy the difference summary from the result actions if needed.

Your data never leaves your device — 100% private processing.

Structural versus textual comparison

Text-based diff tools compare documents line by line, which works well for prose and code but poorly for JSON. JSON is order-insensitive for object keys and tolerant of whitespace, so two documents can be byte-for-byte different yet semantically identical — or look similar but differ in a deeply nested value. A structural diff parses both sides into data and walks the tree, comparing values at each path. The result is a precise list of what actually changed, free of the noise a text diff produces when a formatter reorders keys or reindents the file.

What each diff kind means
KindMeaning
addedPresent on the right, missing on the left
removedPresent on the left, missing on the right
changedPresent on both but with a different value

Reading paths

Every reported difference is anchored to a path so you can find it instantly in the source. Object keys are joined with dots, so user.name points to the name field inside the user object, and array elements use bracketed indices, so tags[1] is the second item of the tags array. Nested combinations read naturally: orders[0].items[2].price locates a deeply buried value. This path notation matches how you would access the value in code, which makes the diff directly actionable — you can jump straight to the field and understand the change without hunting through the document.

Worked examples

Changed value

Inputs: {v:"1.0"} vs {v:"1.1"}

Result: changed · v · "1.0" → "1.1"

Added key

Inputs: {a:1} vs {a:1,b:2}

Result: added · b · 2

Array element

Inputs: [a,b] vs [a,c]

Result: changed · [1] · "b" → "c"

Glossary

Structural diff
A comparison that parses data and compares values by path rather than comparing raw text.
Path
A dotted-and-indexed locator such as user.tags[0] that identifies a value within a JSON document.
Key
The name of a field within a JSON object.
Payload
A body of data, often JSON, sent to or received from an API.

Related reading

Free · No spam

Get weekly tool tips & updates

New tools, power-user tips, and productivity hacks — delivered free every Friday.

No spam, ever. Unsubscribe with one click.

Related Developer Tools

Explore all Developer Tools.