How to use the JSON Compare
Step 1: Paste the original JSON on the left and the changed JSON on the right, or press Load example.
Step 2: Choose whether the order of items inside arrays should matter. Key order in objects is always ignored.
Step 3: Press Compare JSON. Syntax errors are reported with a line and column on the side that has them.
Step 4: Read the summary and the list of differences. Each one shows a path such as $.owner.city, the label Added, Removed, Changed or Type changed, and the before and after values.
Step 5: Press Copy report or Download report to share the differences as plain text.
Features and benefits
Exact paths
Every difference points to its location, such as $.items[2].price, so you can find it in the original file at once.
Structure, not text
The documents are compared as data. Reordered keys and different indentation are not reported as changes.
Array order option
Compare arrays position by position, or treat them as unordered lists when the order does not matter.
Type changes spelled out
A number that became a string, or an object that became a list, is labelled Type changed instead of a plain value change.
Shareable report
Copy or download a plain-text report of all differences for a pull request, ticket or email.
How the comparison works
Both documents are parsed first, so a missing comma or an unquoted key is reported with its line and column before any comparison starts. The parsed values are then walked together. Objects are compared key by key, so the order of keys is irrelevant. Arrays are compared by position by default: the first item against the first item, the second against the second, and any extra items are reported as added or removed.
When two values have a different kind, for example a number on one side and a string on the other, the difference is reported as a type change. That is usually more useful than a plain value change, because a type change often points to a bug in a serializer or a form.
When to ignore array order
Lists such as tags, permissions or a set of ids often come back in a different order from one call to the next without any real change. Turn on the option to ignore array order and the tool matches items by their content instead of their position, reporting only the items that exist on one side and not the other. Leave it off when order carries meaning, such as steps in a sequence or rows in a ranking.
Limits to know about
Very long lists of differences are cut off after 2,000 entries, and the summary says when that happens. JSON has no comments, so documents with comments or trailing commas are reported as invalid. If a value is a very large integer, JavaScript may round it; keep such values as strings in your data.
Example use cases
Comparing API responses
Check what changed between two versions of an endpoint, or between staging and production.
Reviewing configuration files
See exactly which settings differ between two environments before a release.
Debugging test failures
Compare expected and actual JSON from a failing test to spot the one field that differs.
Checking data migrations
Confirm that a transformed document still matches the original apart from the intended changes.
Frequently asked questions
Does the order of keys matter?
No. Two objects with the same keys and values are equal whatever order the keys are written in.
How are arrays compared?
By position by default. Turn on Ignore the order of items in arrays to compare them as unordered lists instead.
Is my JSON sent to a server?
No. Both documents are parsed and compared inside your browser and are never uploaded or stored.
Can it compare very large files?
Each side can hold up to 2,000,000 characters. Large documents work, but the comparison may take a moment on a phone.
What does Type changed mean?
The value is a different kind on each side, for example the number 1 became the string "1", or null became an object.
Related tools
JSON Formatter & Validator
Format, validate and minify JSON, with exact error locations. Runs in your browser.
Developer Tools
Text Compare
Compare two texts and see what was added or removed, by line, word or character.
Text Tools
JWT Parser & Decoder
Decode a JSON Web Token to read its header, payload, claims and expiry. Nothing is uploaded.
Developer Tools
Last updated 11 November 2026.