Skip to content
§
§ · free tool

JSON diff. Semantic, not line-by-line.

Compare two JSON documents structurally — every added, removed and changed value with its exact dot-notation path, independent of key order. Runs entirely in your browser; nothing is uploaded.

A free online tool by Digital Heroes

Files never leave your browser. Nothing is uploaded.

A diff that understands JSON

A plain text diff compares characters, so a key that merely moved position shows up as a change. This tool parses both documents and compares the structure: two objects with the same keys in a different order are equal, and every real difference is reported with its exact path, like limits.maxSizeMB or tags[2]. Turn on array-order-independent matching for reordered lists, relax key casing, or set a numeric tolerance so 0.30000000000000004 stops counting as a change. Everything runs locally — paste API responses, configs or exports with secrets in them without a second thought.

§ 02 · what you can do

Every difference, with its address.

Spot every differenceAdded, removed and changed values with full dot-notation paths like a.b[2].c.
Ignore key orderTwo objects with the same keys in a different order are correctly treated as equal.
Ignore array orderMatch array items as a multiset so reordered lists don't show false changes.
Numeric toleranceTreat numbers within a threshold as equal — ideal for floating-point or rounded values.
Side-by-side viewBoth documents formatted with line numbers and colored added / removed / changed lines.
Export the reportCopy the diff summary to your clipboard or download it as .txt or .json.
§ 03 · how to use it

Five steps, no manual.

  1. Paste your original JSON into Original (A) and the updated JSON into Changed (B) — or drop a .json file onto either load button. Both panes validate live with line and column on errors.
  2. Set options if needed: Ignore array order, toggle case-sensitive keys, or enter a numeric tolerance for float comparisons. Changing an option re-runs the comparison automatically.
  3. Click Compare. Results appear grouped into Added, Removed and Changed sections, each entry with its exact path.
  4. Switch to Side by side for a line-highlighted view of both formatted documents, or use ⇄ Swap to reverse the direction.
  5. Click Copy report, or download the diff as .txt or .json to share or save it.
§ 04 · faq

Frequently asked questions.

Is JSON Diff free?
Yes — completely free for everyone. No sign-up, no account and no usage limits.
Is it private? Are my files uploaded anywhere?
No upload, ever. Both documents are parsed and compared entirely in your browser on your own device — safe for API responses, configs or exports that contain keys and customer data.
What is the difference between JSON Diff and a plain text diff?
A plain text diff compares raw characters and reports changes based on line order. JSON Diff understands the JSON structure, so it knows a key that moved position is not a change while a value that actually changed is — and it shows the exact path to every difference.
How do the array-order and numeric-tolerance options work?
With “Ignore array order” on, arrays are compared as multisets: items match regardless of position, and only genuinely unmatched items are reported as added or removed. Numeric tolerance treats two numbers as equal when their difference is within the threshold you set — useful for floating-point noise or rounded totals.
How do I read the paths in the results?
Paths use dot notation with array indexes in brackets: limits.maxSizeMB means the maxSizeMB key inside the limits object, and tags[2] means the third item of the tags array. Keys that aren't valid identifiers are shown quoted, like headers["content-type"].
Does it work offline?
Yes — once the page has loaded, parsing, comparing, and exporting all run locally, so the tool keeps working without a connection.

Published · Last updated .

Online now

Hi there. How can we help you today?

Reply