Skip to main content

JSON Diff Viewer

New

Compare two JSON documents and see every added, removed, and changed value, with the full key path to each difference.

json diffjson comparediff viewerjson comparison
Read the guide
Shortcuts:⌘ KSearch
Differences

This compares two JSON documents recursively, key by key. Object keys are compared regardless of order (so re-ordering keys with identical values shows no diff), while array elements are compared by index. Each difference is labeled as added, removed, or changed, with the full path to that value shown using dot/bracket notation.

Continue with:

Frequently Asked Questions

Does reordering keys in an object count as a difference?

No — object keys are compared by name, not by position, so {"a":1,"b":2} and {"b":2,"a":1} show no differences. Array elements, on the other hand, are compared by index, since order is meaningful in arrays.

How are array length changes shown?

If the changed JSON has more elements than the original at a given path, the extra indexes are reported as "added"; if it has fewer, the missing indexes are reported as "removed" — each labeled with its full array-index path like skills[2].

What does a "changed" result mean versus "added" or "removed"?

"Changed" means the same key or index exists in both documents but holds a different value (including type changes, like a number becoming a string). "Added" and "removed" mean the key or index only exists in one of the two documents.

Does it recurse into nested objects and arrays?

Yes — the comparison walks the full structure recursively, so differences inside deeply nested objects and arrays are reported with their complete dotted/bracketed path from the root, such as user.address.city or items[3].price.

What happens if one of the JSON inputs is invalid?

The tool shows a clear parse error message identifying which side (Original or Changed) failed to parse, instead of attempting a partial or misleading comparison.

Related Tools