JSON Diff
Compare two JSON documents and see exactly which keys were added, removed, or changed.
Original JSON
Modified JSON
4 differences found
Recommended Settings
Pro Tips
- •The comparison is recursive, so nested objects and arrays are compared key by key, not just at the top level
- •Array items are compared by their position (index), so reordering array elements shows as changes at each affected index
- •A key present in one document but not the other shows as 'added' or 'removed' rather than 'changed'
- •Values are compared by their actual content, so formatting or key order differences alone don't count as changes
Most Popular
Most developers compare an API response before and after a backend change to confirm exactly what data shifted
When to Use This Tool
See exactly what changed in an API's response after a backend update.
Spot every added, removed, or changed setting between two JSON configuration files.
Pinpoint exactly which field changed value when troubleshooting unexpected behavior.
Compare expected and actual JSON output when writing or debugging tests.
How It Works
Parse both JSON documents into JavaScript objects
Recursively walk both structures together, comparing matching keys and array indices
Report each difference as added, removed, or changed, along with its full path within the document
100% Private
Files never leave your device. All processing happens locally in your browser.
Lightning Fast
Powered by Client-side recursive JSON comparison for optimal performance on modern browsers.
Open Source
Built with verified, open-source libraries. Fully transparent.
Frequently Asked Questions
Does key order matter?
No, keys are compared by name regardless of their order in the document, since JSON objects are inherently unordered.
How are array differences shown?
Array elements are compared by their index position. If an item is inserted in the middle of an array, every following index will show as changed, since positions shift.
What counts as a 'changed' value?
Any leaf value (string, number, boolean, or null) that differs between the two documents at the same path, or a type mismatch like a string versus a number.
Is my JSON data sent anywhere?
No. All comparison happens locally in your browser.