JSON diff
What actually changed, as a path.
Output
Put the two documents one after the other, with a line of --- between them.
Your files stay on your device
This tool runs entirely in your browser. What you paste is processed on your device and is never sent to a server, so it is safe to use with tokens, keys and unpublished text.
How it works
- Paste the first document, a line of ---, then the second.
- If the two hold a keyed list, name the key: items that only moved are then reported as moved rather than rewritten.
- Read the paths. + is added, - is removed, ~ is changed, → is moved.
- Copy the report if you need it in a ticket.
Frequently asked questions
- Why not just use a text diff?
- Because a text diff of JSON is nearly useless. Reformat a file, or let a server return its keys in another order, and every line is marked changed while nothing actually is. This walks both values together, so users[2].email is the answer rather than “line 47”.
- How are arrays compared?
- By position, which is the honest default: matching them by content needs a key nobody has told us about, and guessing one produces confident nonsense. If your list has an id, name it and the comparison follows the items instead of their positions.
- Does key order count as a difference?
- No. {a:1,b:2} and {b:2,a:1} are the same data and are reported as identical.
- Is there a size limit?
- Only what your browser can hold. Documents of a few megabytes are fine; the comparison itself is quick.
- Is anything sent to a server?
- No. It runs in your browser, so what you paste stays on your computer.
Related tools
{} JSON Formatter Paste JSON, get it indented, minified or validated instantly. Your data stays on this page. {} JSON to types A sample in, a type out. ≠ Text tools Text Diff Paste two versions of a text and see exactly which lines changed. ✓ YAML validator Does it parse — and does it mean what you think?