Skip to content
NewKitApp

Search tools

Jump to any tool by name

JSON Compare

Diff two JSON documents and see every added, removed, and changed value.

Differences

Enter JSON on both sides to compare.

What is JSON Compare?

JSON Compare is a structural diff tool that takes two JSON documents and reports exactly which values were added, removed, or changed, each identified by its path (for example items[2].name). It parses both inputs and compares the resulting values, so whitespace and key ordering are ignored and only actual differences in keys and values surface. Arrays are compared positionally by index, which means inserting an element in the middle shows every element after it as changed rather than a single insertion. It runs entirely in your browser, so nothing you paste is transmitted anywhere.

How to Use JSON Compare

  1. Paste the original JSON into the left box and the changed JSON into the right box.
  2. The difference list updates instantly, showing every added, removed, and changed value by its path.
  3. Object keys are compared regardless of order — only actual value differences are reported.
  4. Array elements are compared by index; extra trailing elements on either side show up as added or removed.

Examples

Changed value

Input: Left: {"a":1} Right: {"a":2}

Output: a: changed 1 → 2

Added key

Input: Left: {"a":1} Right: {"a":1,"b":2}

Output: b: added (2)

Nested path

Input: Left: {"user":{"name":"Ada"}} Right: {"user":{"name":"Grace"}}

Output: user.name: changed "Ada" → "Grace"

Common Mistakes

  • Assuming this does a "smart" line-based diff like a text/git diff — it's a structural JSON diff, so reordering array elements shows up as changes even if the same values are still present.
  • Comparing minified JSON against pretty-printed JSON and expecting whitespace to matter — only the parsed values are compared, not formatting.
  • Forgetting that JSON has no "undefined" — a key that's genuinely missing shows as added/removed, while a key explicitly set to null is a real value and will show as changed if the other side differs.

Why Use This Tool

  • Path-based diff output tells you exactly where a difference is, not just that the documents differ.
  • Ignores key ordering, focusing only on actual structural and value differences.
  • Clear, separate error messages when either side fails to parse, instead of one generic failure.
  • Runs entirely client-side — nothing you paste is sent anywhere.

Frequently Asked Questions