snaptools
J
JSON Diff
✓ identical
// about this tool

JSON Diff Online

Updated 2026-07-09

Compare two JSON objects online and see exactly what changed. Paste an original and an updated document and SnapTools highlights every added, removed, and changed key — at any nesting depth — so you don't have to scan two payloads by eye. Everything runs in your browser; nothing is uploaded.

Because JSON objects are unordered, the diff ignores reordered keys and reports only meaningful differences. It's ideal for comparing two API responses, reviewing a configuration change, or checking what a request actually modified.

// how to use

  1. 1 Paste the original JSON on the left and the updated JSON on the right.
  2. 2 SnapTools compares them and highlights what was added, removed, or changed.
  3. 3 Read the difference summary to see exactly which keys and values differ.

// examples

One value changed, one key added
Input
A: {"name":"Ada","role":"dev"}
B: {"name":"Ada","role":"admin","active":true}
Output
~ role: "dev" → "admin"
+ active: true

// common uses

Comparing two API responses Reviewing a config change Spotting what a request modified Diffing fixtures in tests

// faq

It compares the two JSON structures key by key (and item by item for arrays), then reports which keys were added, removed, or had their value changed.
No. JSON objects are unordered, so reordered keys are treated as equal — only real additions, removals, and value changes are reported.
Yes. The diff walks nested objects and arrays so you see changes at any depth, not just the top level.
No — the comparison runs in your browser; neither document leaves your machine.
You'll see a syntax error for that side. Fix it (the JSON Validator pinpoints the line) and the diff updates.

↳ Curious to go deeper? Read the How to compare two JSON objects guide →

Use this via API

Get a free API key →
curl -X POST https://snaptools.dev/api/v1/tools/json-diff \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"json1":"A: {\"name\":\"Ada\",\"role\":\"dev\"} B: {\"name\":\"Ada\",\"role\":\"admin\",\"active\":true}"}'
Esc
↑↓ navigate open Esc close