JSON Diff Online
Compare By Meaning, Not By Lines
This JSON diff online tool compares two documents and lists every value that was added, removed or changed. It reads JSON, XML and YAML, right in your tab.
- FreePrice
- 3Formats
- NoneSign-up
- NoneUploads
JSON Diff
Compare two JSON, XML or YAML documents by meaning, not by lines
- Added
- 0
- Removed
- 0
- Changed
- 0
- Unchanged
- 0
Ready. Paste a document on each side and the differences appear.
Why Use A JSON Diff Online
A normal text diff compares lines. That works for prose. It fails for data. If one tool saves keys in a new order, every line looks changed, and the real change hides in the noise.
This JSON diff online tool compares meaning. Two objects with the same keys are the same object, whatever the order. So you only see what really differs.
Paste the old version on the left and the new one on the right. The list of changes appears at once. Each row shows a path, such as $.stock.shop, and the old and new value.
The tool also reads XML and YAML. So you can compare two config files, two API replies or two exports, even in different formats.
Developers use this for many jobs. For example, you can check a config before a release. Or you can compare an API reply before and after a deploy. Then you know what really changed. Also, a support team can compare two exports from a customer and find the one field that differs.
Added, Removed And Changed
Every difference falls into one of three groups. Added means the key exists only on side B. Removed means it exists only on side A. Changed means both sides have it, with different values.
Each group has its own colour and its own word, so you never rely on colour alone. Four counters sit above the list. Tick or untick a group to show only the rows you want.
A type change counts as a change. For example, the number 1 and the text "1" are different, and the tool says so.
Paths follow the JSONPath style. The root is a dollar sign. A key adds a dot and its name, and a list item adds its position in square brackets. So you can copy a path and use it in your own code.
JSON Compare Online, Ignoring Order
Lists are different. In a list, order often matters. But sometimes it does not, such as a list of tags. Tick Ignore the order of list items, and the tool matches equal items wherever they sit.

Items that have no equal partner get paired by position, so you still see what changed inside them. Items with no partner at all show as added or removed.
Match List Items By A Key
Lists of records need a better rule. Think of a list of products, each with an id. If the order changes, a position check reports chaos.

Type id in the match field. Now the tool pairs each product with its twin by id, and compares only the twins. A price change shows up as one row.
Products that exist on one side only show as added or removed. That is exactly what you want when you diff two exports.
Skip The Noise
Some fields change on every save. A timestamp. A version counter. A request id. They bury the changes that matter.

List those keys in Ignore these keys, separated by commas. They vanish from both sides. You can also ignore letter case and the spaces around text, and treat 1 and 1.0 as equal.
Export A JSON Patch
The Download JSON Patch button writes the changes as a patch in RFC 6902 format. Apply it to side A, and you get side B. Many libraries read this format.

A patch needs exact positions. So the button works when lists are compared by position, and the tool tells you when it is off.
Big Numbers Stay Exact
The reader keeps every number as written. Two 20-digit ids that differ in the last digit show as different. Many tools round them first, and then call them equal.
Using The JSON Diff Tool, Step By Step
Four steps give you a clean list of changes. The options then tune what counts as a change.
- 1
Paste both sides
Put the original on the left and the changed version on the right. You can also open a file for either side.
- 2
Let it detect the format
The tool reads JSON, XML and YAML. If a file looks odd, set the format by hand.
- 3
Tune the comparison
Ignore list order, match items by a key, skip noisy keys, or relax case and spacing.
- 4
Read, copy or export
Read the list of changes. Copy it as a report, or download a JSON Patch.
What This JSON Diff Tool Does Differently
Plenty of tools highlight lines. These are the places where this one goes further.
Compares meaning
Key order and indentation never count. Only real differences appear in the list.
Three formats, mixed
Compare JSON with YAML, or two XML files. Each side is read by its own reader.
Smart list matching
Match by position, by any order, or by a key such as id. Pick whichever fits your data.
A patch you can apply
Download the changes as an RFC 6902 JSON Patch, ready for a library or a script.
Exact numbers
Long ids keep every digit, so two near-equal ids are never called equal.
Nothing leaves your tab
Configs often hold secrets. Because your browser does the work, none of it reaches this site.
Habits For Comparing Data Safely
A diff only helps if you compare the right things. These habits keep it honest.
- Validate both sides first. A broken file cannot be compared. The tool names the side and the line, so you fix it fast.
- Ignore timestamps on purpose. List them in the ignore field. Then every row you see is a change someone made.
- Pick the list rule that fits the data. Use position for ordered steps, any order for tags, and a key for records.
- Use a key that is truly unique. If two records share an id, only the first one pairs up. Check the ids before you trust the result.
- Mind the types. The text "5" and the number 5 are different. If your two sources disagree on types, tick the equal-numbers option.
- Read removed rows twice. A removed key can be a deleted field, or a renamed one. A rename shows as one removal and one addition.
- Compare after the same cleanup. Run both sides through the same formatter first. Then any difference you see comes from the data, and not from your tools.
- Keep the original files. The tool never changes them. Still, a saved copy is the best safety net.
- Compare small pieces of big files. If a file is huge, cut out the part you care about. The list stays short and easy to read.
- Share the report, not the files. Copy the report into a ticket. It holds paths and values, and nothing else.
- Export a patch for repeat jobs. If you apply the same change often, a patch saves time. Test it on a copy first.
Common Comparing Mistakes This Tool Prevents
Each of these hides real changes or invents false ones.
Diffing minified against pretty text
A line diff calls every line different. This tool ignores layout, so only data counts.
Reordered keys
Two exports can list the same keys in different order. Here, order never matters for objects.
Position checks on records
If one record moves up, every record below it looks changed. Match by key instead.
Noisy fields
Timestamps and counters change every time. Ignore them, or the real change is lost.
Rounded numbers
A tool that turns numbers into floats can call two ids equal. This one compares the digits.
Trusting a patch on the wrong base
A patch only fits the document it was made from. Apply it to side A and no other.
JSON Diff Questions People Ask
Is this JSON diff online tool free?
Yes. It costs nothing, needs no account and has no limits. It runs in your browser, so we have no server cost to pass on.
Are my files uploaded anywhere?
No. Your browser reads and compares them. Nothing reaches this site, and we keep nothing. Closing the tab clears it all.
How is this different from a text diff?
A text diff compares lines. This tool compares data. Key order, spacing and indentation never create a difference.
Can it compare JSON with YAML?
Yes. Each side is read by its own reader, then both become the same kind of tree. Leave the format on Detect it.
How does it handle XML?
Attributes become keys that start with an at sign. Repeated elements become a list. Then the comparison runs as usual.
What does Ignore the order of list items do?
It matches equal items wherever they sit. A list of tags with the same tags in a new order shows no difference.
What is the match key for?
It pairs records by a field, such as id. Then a moved record is not a change, and a price edit shows as one row.
Can I ignore some fields?
Yes. Type the key names in the ignore field, separated by commas. They vanish from both sides at every depth.
What is a JSON Patch?
It is a standard list of steps that turns one document into another. Each step adds, removes or replaces a value at a path.
Why is the patch button off?
A patch needs exact list positions. It turns off while you ignore order or match items by a key. The note under the filters says so.
Can I compare two API responses?
Yes. Copy each response and paste it on its side. Then list fields such as request ids and times in the ignore box. Because the tool compares meaning, a reordered reply is still the same reply.
Does it work on a phone?
Yes. The two sides stack, and the list wraps. For long files, a laptop is still easier.
How big a file can it compare?
Files up to five megabytes open from disk. Live comparing stops above two megabytes, so press Compare now for big files.
Handy Companions For Data Work
Comparing is one step. These three tools handle the steps around it.
Diff Checker
Compare two texts line by line, side by side.
Open tool →JSON Viewer
Read JSON as a tree or a table, then edit it.
Open tool →YAML to JSON Converter
Turn a YAML file into JSON before you compare.
Open tool →
Ready To Compare Two Documents?
Paste both sides and read the list of changes. The tool is free, needs no account, and keeps every byte on your device.