Skip to main content
SK Play Labs logoSK Play Labs

JSON Diff

See which fields were added, removed, or changed.

Runs entirely in your browser — nothing you enter is uploaded or sent to a server.

Arrays are compared by position, so reordering items shows up as changes — that keeps the diff predictable, but read array changes with that in mind. Read our full disclaimer.

About this tool

Structurally compares two JSON values and tells you exactly what changed going from the old one to the new one: which fields were added, which were removed, and which had their value changed — each with a dotted path like user.roles[0]. It recurses through nested objects and arrays, so deep changes surface clearly. Perfect for comparing API responses, config versions, or fixtures.

Try it

Change age from 30 to 31, drop a role, and add active: true, and the tool reports one changed field (age), one removed (roles[1]), and one added (active).

How to use

  1. 1Paste the old JSON on the left and the new JSON on the right.
  2. 2Read the change list: added, removed, and changed fields.
  3. 3Each change shows its path and the old and/or new value.
  4. 4Fix any parse error shown if the JSON is invalid.

Features

  • Deep structural diff of nested objects and arrays.
  • Added / removed / changed, each with a full dotted path.
  • Clear parse errors that name which side is invalid.

Frequently asked questions

How are arrays compared?

By index — position 0 to position 0, and so on. Reordering an array will therefore show as changes. This keeps the diff simple and predictable.

How do I compare two JSON objects?

Paste the old JSON on the left and the new on the right; the tool lists every added, removed, and changed field with its dotted path (like user.roles[0]), recursing through nested objects and arrays.

Does the order of keys matter?

No. Objects are compared by key, not by the order the keys appear, so reformatting or reordering keys won't show as a difference. Arrays, though, are compared by position.

Is my JSON sent anywhere?

No. Both sides are parsed and compared in your browser, so nothing you paste leaves your device — safe for API responses or config that contains secrets.

What counts as a 'changed' field?

A field present in both, where the value differs — including a type change (say an object becoming an array). Unchanged fields aren't listed.

More developer tools

View all