Skip to content

JSON Diff

Compare two JSON documents and see every added, removed and changed value with its full path. The comparison is structural, so key order and formatting differences are ignored. Everything runs in your browser.

Runs in your browserFreeNo sign-up

Processed on your device. Files and text stay in your browser and are not uploaded to our servers. How privacy works

How to use the JSON Diff

  1. Paste the original JSON on the left and the changed version on the right. Both are validated as you type.
  2. Read the summary: how many values were added, removed or changed.
  3. Each difference shows its path (for example $.dependencies["pdf-lib"] or $.items[2].price) and the before and after values.
  4. Copy the report as text to paste into a review or ticket. Swap sides to reverse the direction.

Features

  • Structural comparison: key order, indentation and whitespace don't count as differences
  • Nested objects and arrays are compared recursively with JSONPath-style paths
  • Type changes (a string becoming a number, an array becoming an object) are reported as changed
  • Colour-coded added, removed and changed rows with counts
  • Copyable plain-text report

How objects and arrays are compared

Objects are compared by key: a key that exists only on the right is added, one that exists only on the left is removed, and a key present on both sides with different values is changed, recursing into nested objects. Arrays are compared position by position, which is the behaviour most people expect for lists such as line items or configuration steps.

That positional rule means inserting an element at the start of an array reports every later element as changed, not one element as added. If arrays represent unordered sets, sort them before comparing, or use the JSON Formatter with key sorting on both sides to canonicalise objects first.

Typical uses

Reviewing an API response before and after a change, checking what a deploy altered in a configuration file, comparing package.json files across branches, or confirming that a migration preserved a record.

Frequently asked questions

Why does it say everything changed after I moved one array item?

Arrays are compared by index. Moving an item shifts the others, and each shifted position is reported. Sorting both arrays first makes such diffs readable.

Are whitespace and key order really ignored?

Yes. Both documents are parsed into data first; only the resulting values are compared, so formatting has no effect.

Is there a size limit?

No fixed limit. Documents of a few megabytes compare quickly; the list of differences is what takes space on screen.

Is my data uploaded?

No. Parsing and diffing happen in your browser.

Other tools people use alongside JSON Diff.

You might also like

Something useful from another corner of VoltKit.