How to use JSON Diff
What it does & when you need it
Two JSON documents look nearly the same, and you need to know precisely what changed: an API response before and after a deploy, a config file across two environments, or a fixture that a test suddenly disagrees with. A plain text diff is useless here — reindent the file or reorder a few keys and every line lights up red. This tool parses both sides and compares the values, so it only reports real structural changes. Everything runs in your browser, so a payload full of tokens or customer data never leaves your machine.
How to use
- Paste the original document into buffer A and the changed one into buffer B, or press Sample on A to load a before/after pair.
- Read the diff panel below. A
+line is a key or element that appears only in B, a-line appears only in A, and a~line is a value that changed, shown asold → new. - Press Copy diff or
Ctrl/Cmd+Enterto copy the report.
Things worth knowing
Key order and whitespace are ignored. Because both sides are parsed first,
{"a":1,"b":2} and {"b":2,"a":1} are reported as identical. Reformatting,
indentation, and trailing-comma-free reserialization produce zero noise — only a
different value, a new key, or a removed key shows up.
Paths are dotted, arrays are indexed. A change nested inside an object reads
like ~ limits.rps: 100 → 150, and an array element reads like
+ features[2]: "webhooks". That makes it easy to jump straight to the field in
your source.
A type change is a single line. If a field goes from the number 42 to the
string "42", you get one ~ line rather than a delete plus an add, so
accidental stringification is obvious at a glance.
It compares arrays positionally. Element [0] is compared with element [0],
so inserting an item near the front reports every later index as changed. For
line-oriented text or prose, reach for the diff checker
instead; to tidy either side first, use the JSON formatter.