JSON compare: structural diff

Compare two JSON documents independently of object key order. Find additions, removals and changes using JSON Pointer paths.

Processed in your browser: your data are not uploaded.

Set your data

Set your data

100,000 characters per JSON, 60 levels and 10,000 values. Up to 500 displayed differences; exact numbers with up to 1,000 digits and normalized exponent ±10,000.

Result

Enter your values to see the result.

We count which tools are used most, without including entered values or file contents in the statistics. Privacy

How to use it

Compare types first: a numeric string is not a number, and null is not an absent property. Use JSON Pointer paths to locate changes. Slashes and tildes within property names are escaped in those paths.

Example inputs
InputResult
{"price":10,"tags":["a","b"]} {"tags":["a","c"],"price":10}/tags/1: "b" → "c"

Method and limits

Object order is ignored; array order matters. Numbers are compared exactly. Paths follow JSON Pointer.

Example

Usage scenario

Input
{"price":10,"tags":["a","b"]} {"tags":["a","c"],"price":10}
Result
/tags/1: "b" → "c"

Objects with a price of 10 and tags are equivalent if only the property order changed. If the second array item changes from b to c, the path /tags/1 identifies the difference: array indexes start at zero.

What are the limits of this tool?

100,000 characters per JSON, 60 levels and 10,000 values. Up to 500 displayed differences; exact numbers with up to 1,000 digits and normalized exponent ±10,000.

Inputs and results are processed in your browser and are not sent to the server. Aggregate statistics, when enabled, record only the tool and outcome, without the content.

Sources

PRACTICAL GUIDES

JSON key order: comparing objects and arrays

Separate property order from array order. Read difference paths and check types, exact numbers and duplicate keys.

Follow the steps

Favorites