JSON Diff
Structurally compare two JSON documents and see added, removed and changed values, locally.
Spot every change between two JSON documents
This tool walks two JSON documents recursively and lists every difference: keys present in one but not the other, and values that changed type or content. It's for reviewing an API response before and after a change, or checking whether a config edit did what you intended. Object keys are compared regardless of order, but array elements are compared by index, so reordering an array shows up as changes even when the same values are present.
How to use the JSON Diff
- Paste the original document into panel A and the updated one into panel B.
- Read the change list, where each row shows a path, a symbol and the values.
- Look for the + symbol for additions, − for removals, and ~ for changed values.
- Check the summary counts at the top of the panel for a quick total.
Comparison is structural: object keys are matched by name regardless of order, so adding a key at the start of an object doesn't register as a change. Arrays are compared position by position, so inserting an element at the start shifts every later index and shows as a changed value rather than a single insertion.
Frequently asked questions
- Why does reordering an array show as a diff?
- Array elements are compared by index, not by matching similar values, so moving an item to a different position looks like every following index changed, even though the underlying values are still present in both documents.
- Does key order in an object affect the result?
- No. Objects are compared by key name rather than position, so the same keys in a different order produce zero differences; only keys that were actually added, removed, or given a different value are listed.
- Can I diff JSON documents that aren't the same type?
- Yes. If one side is an object and the other is an array or a primitive, that's reported as a single changed value at that path rather than a list of individual key differences.
- Is either document sent anywhere to compute the diff?
- No. The comparison runs in a Web Worker inside your browser, so both documents, useful when you're diffing configs or responses containing internal identifiers, stay on your machine the whole time.