JSON Compare
Compare two JSON documents by value and see every added, removed and changed field.
- Runs in your browser
- No upload required
- Free, no signup
Paste the first document here.
Paste the second document here.
Only the first 2000 differences are listed. Narrow down the documents to see the rest.
Every path is present on both sides with the same value — the documents are equivalent.
Your data is processed locally in your browser and is not uploaded to our server.
Comparing two JSON documents by eye is painful, and a plain text diff is often worse than useless: reformat the file or reorder a few keys and every line is marked as changed while nothing meaningful moved. This tool compares the parsed values instead. Paste both documents and it reports only what actually differs.
Each difference is listed with the path that leads to it, so you can go straight to $.server.timeout rather than hunting through indentation to work out where the change landed. Object key order and whitespace are irrelevant by design. Both documents are parsed and compared inside your browser, so nothing is uploaded.
How to use this tool
- Paste the original document into the left box and the changed document into the right one.
- Press Compare. Both sides are parsed, so anything that is not valid JSON is reported with the line and column where the parser gave up.
- Read the list of differences. Every row names the path, the kind of change and the value on each side.
- Tick “Ignore order inside arrays” when a list has been reordered but still holds the same items — that reports only genuinely added or removed entries.
Frequently asked questions
How is this different from a normal text diff?
A text diff compares characters. Re-indenting a file, reordering keys or switching from spaces to tabs rewrites every line without changing a single value. This tool parses both documents and compares the data, so a difference is reported only when a value, a type or a key actually changed.
Does key order matter?
No. { "a": 1, "b": 2 } and { "b": 2, "a": 1 } are treated as identical, because JSON objects are unordered by definition. Whitespace and indentation are ignored for the same reason.
How are arrays compared?
By position by default, so moving an item is reported as a change. Tick “Ignore order inside arrays” to compare arrays as sets of values instead, which is useful for lists where order carries no meaning. Nested arrays are matched on their full contents.
What does “type changed” mean?
The path exists on both sides but holds a different kind of value — 8 becomes "8", or an object becomes an array. These are easy to miss in a text diff and are a common cause of failed API calls, so they are labelled separately from ordinary value changes.
Are my documents sent to a server?
No. Parsing and comparison both run in your browser with JSON.parse. Your data never leaves your device, which is why the tool works for configuration files and API payloads that you would not want to paste into a remote service.
How large can the documents be?
There is no fixed size limit — it depends on your device’s memory. To keep the page responsive the report lists at most 2000 differences and tells you when it has stopped early.