How to use the JSON Compare Tool
1. Paste the first (original) JSON object into the Left JSON panel.
2. Paste the second (modified) JSON object into the Right JSON panel.
3. The diff result shows added (+), removed (-), and changed (~) keys with their values.
What is it?
Comparing JSON objects is essential during debugging, API versioning, and code review. When an API response changes between releases, or a configuration object diverges between environments, a visual diff instantly highlights exactly what changed, what was added, and what was removed.
This tool performs a deep recursive comparison — nested objects are fully traversed and differences are shown with dot-notation paths (e.g., address.city). The output uses a simple unified diff notation: + for added keys, - for removed keys, and ~ for changed values.
Example
Left: {"name":"Alice","age":30,"city":"New York"}
Right: {"name":"Alice","age":31,"role":"admin"}~ age: 30 → 31 - city: "New York" + role: "admin"
~ = changed value, + = added key, - = removed key. Nested paths shown as object.key notation.
Benefits
Spot exactly what changed between two API response versions
Every addition, deletion, and changed value is highlighted individually — nothing is hidden in a wall of similar-looking text.
Compare staging and production API responses side by side
Confirm a deployment didn't silently change response structure, field names, or values that clients depend on.
Review database schema migrations by diffing data structures
Compare old and new JSON shapes to identify breaking changes before they reach API clients or frontend code.
Audit configuration drift between environments
Compare JSON configs from dev, staging, and production to find unexpected differences that explain environment-specific bugs.
Frequently asked questions
Does this compare arrays element by element?
Arrays are compared as opaque values — if two arrays differ at all, the entire array is shown as changed. For line-by-line text diffing, use the Text Diff tool.
What does dot notation in the output mean?
Nested keys are shown with dot notation to indicate their path. For example, address.city means the city key inside the address object. This makes it easy to locate the changed field in complex objects.
Can I compare JSON arrays (not objects)?
The current implementation is optimized for JSON objects. Comparing two JSON arrays will compare them as a single value. Paste them inside wrapper objects (e.g., {"data": [...]}) for a meaningful diff.