Command Palette

Search for a command to run...

JS

JSON Diff Checker

Compare two JSON documents structurally and see added, removed, and changed keys with exact paths

Category:diff
Mode:Offline
Version:1.0.0
Access:Free

What is JSON Diff Checker?

JSON Diff Checker interface on Toolz.dev - Compare two JSON documents structurally and see added, removed, and changed keys with exact paths

JSON Diff Checker compares two JSON documents structurally rather than line-by-line. Instead of telling you "line 14 differs", it parses both documents and reports exactly which keys were added, removed, or changed - with full paths like features.rateLimit or tags[2] - so you can see at a glance what changed between two API responses, config files, or package manifests.

Text-based diff tools produce noise on JSON: reordered keys or different indentation show up as changes even when the data is identical. A structural diff ignores formatting entirely and compares the parsed values. It also catches a class of bugs plain diffs hide, like a value silently changing type from the number 3000 to the string "3000" - flagged here as a distinct "type changed" entry, because that difference breaks strict-typed consumers even though it looks identical at a glance.

The comparison runs client-side in your browser. The JSON you paste - API payloads, environment configs, database exports - never leaves your device, so it is safe to compare documents from internal or production systems. Clicking Compare sends only a usage check and a record of how many differences were found. There is no signup, no upload, and the tool works offline once the page is loaded.

Load Sample shows what the JSON diff checker reports when you compare two JSON files that differ in every way. The original has "version": "1.4.0", "port": 3000 and rateLimit 100; the updated file has "1.5.0", "port": "3000", rateLimit 250, a new metrics key and a third tag. Compare returns 5 differences: +2 added (features.metrics, tags[2]), ~2 changed (version, features.rateLimit) and !1 type changed (port). Copy Report turns that into five marked lines, starting with ~ version: "1.4.0" → "1.5.0".

Comparing structurally rather than as text is what makes the result readable, and it rests on a fact about JSON that a text diff cannot use: object keys are unordered by specification, so two documents that differ only in key order are the same document, and a line-based diff will report every line as changed. Arrays are the opposite, since order in an array is meaningful, so a reordered list is a real difference by default. The option to ignore array order exists for the common case where an API returns a set in whatever sequence it likes. Numbers are compared by value, so 1.0 and 1 match, which is usually what you want and occasionally hides a type change. Type changes are reported separately for that reason, since a field moving from the number 5 to the string "5" breaks consumers while looking almost identical.

How to use JSON Diff Checker?

1

Paste both JSON documents

Paste the original JSON into the left panel and the updated JSON into the right panel, or click Load Sample to see a worked example with every difference type.

2

Choose comparison options

Enable "Ignore array order" if element position is irrelevant for your data - useful for tag lists or ID sets where [1,2,3] should equal [3,2,1].

3

Compare

Click Compare. Both documents are validated first - if either side has a syntax error, you get the exact parse message and which side it came from.

4

Review and export the diff

Read the summary counts, then scan the table of differences with their JSON paths, old values, and new values. Copy the diff report to your clipboard to paste into a PR comment or ticket.

Key Features

Structural, Not Textual

Compares parsed values, so key order, indentation, and whitespace differences never show up as false changes

Exact JSON Paths

Every difference is reported with its full path - features.rateLimit, users[3].email - so you can jump straight to the change

Type-Change Detection

A number turning into a string (3000 → "3000") is flagged separately from a value change, catching bugs plain diffs hide

Ignore Array Order Option

Treat arrays as unordered sets when element position is irrelevant, eliminating noise from re-sorted lists

Frequently Asked Questions

Paste one document into the left panel and the other into the right panel, then click Compare. The tool parses both and lists every added, removed, and changed key with its exact JSON path. Both documents stay in your browser - nothing is uploaded.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!

json diff checkerjson diffjson comparecompare jsonjson differencejson diff onlinejson comparison tooldiff two json filesjson compare onlineapi response diff