Skip to content
JSON Runs offline

JSON Diff

Compare two JSON documents and see every key that changed.

Left

0 chars

Right

0 chars

Output

0 chars
Ctrl

Questions

Why is key order ignored by default?

JSON object keys have no defined order - {"a":1,"b":2} and {"b":2,"a":1} are the same value. Two API responses that differ only in the order a server happened to write the keys are not meaningfully different, so that noise is off by default. Array element order is always compared, because a list's order is part of its value.

How is a type change reported?

As a changed value at that path, showing both the old and new value, the same as any other changed value. A field that used to hold "42" and now holds 42 is reported exactly like any other change - there is no separate "type changed" category to check.

What happens if one side has extra nested fields deep inside an object?

The comparison walks into matching objects and arrays even when their contents are completely different, so an added or removed field is reported at its own path - e.g. user.address.city - rather than the whole parent object being reported as one opaque change.

Open Text Diff

Text Diff

Compare two blocks of text and see exactly what changed.

Text
Open JSON Formatter

JSON Formatter

Format, indent and inspect JSON with clear error reporting.

JSON
Open JSON Validator

JSON Validator

Check whether JSON is valid and see exactly where it breaks.

JSON