JSON Diff

Compare two JSON documents online: key order and indentation ignored, every addition, removal, and change listed by JSONPath, nothing uploaded

Last updated
My tools
No tools yet

Loading...

How to compare two JSON documents online

  1. 1

    Paste or open both JSON documents

    Put the two documents you want to compare into the left and right panes, or open a .json file from your machine. The content stays in your browser and is never uploaded.

  2. 2

    Read the structured difference list

    The tool canonicalizes both sides first (key order and indentation ignored by default), then lists every addition, removal, and change with its JSONPath and the value on each side.

  3. 3

    Check the diff view and export

    Click any row in the list to jump to that spot in the diff view, then copy the diff or download it as a .patch file.

Features Overview

Compare two JSON documents online and see what actually changed. Key order and indentation are ignored by default, so {"a":1,"b":2} and {"b":2,"a":1} count as identical. Besides a side-by-side diff you get a structured list: every row is a JSONPath plus the value on each side, so it tells you $.data[3].price changed rather than "line 42 changed". Large integers and trailing zeros like 2.370 survive byte for byte. Everything runs in your browser; nothing is uploaded.

Tool Description

Paste two JSON documents and see what actually changed. Key order and indentation are ignored by default, a structured list reports additions, removals, and changes by JSONPath with both values, side-by-side and unified views are one click apart, large integers keep their precision, and everything runs in your browser.

Capabilities Checklist

  • JSON diff ignores key order and indentation by default, so only real semantic differences are reported
  • Structured difference list: additions, removals, and changes one by one, each with its JSONPath and both values
  • Side-by-side and unified diff views; click a row in the list to jump to that spot in the diff
  • Optionally ignore array element order or letter case, and show only differences or full context
  • Large integers and the trailing zero in 2.370 are preserved byte for byte, never mangled by JavaScript number precision
  • Paste, open a file, or swap the two sides; the diff can be copied or downloaded as a .patch
  • When either side is invalid you get the exact line and column, not a bare "invalid format"
  • Runs entirely in your browser: no sign-in, no ads, nothing uploaded

Related Tools

Frequently Asked Questions

How do I compare two JSON files online?
Paste each JSON document into the left and right pane and the comparison runs automatically. Key order and indentation differences are ignored by default, so two documents that are formatted differently but hold the same data count as identical.
How is a JSON diff different from a plain text diff?
A text diff compares line by line, treats a different key order or indentation as a change, and can only tell you "line 42 changed". A JSON diff canonicalizes the structure first and compares by path, so it can point at $.data[3].price and show exactly what it changed from and to.
Does a different key order count as a difference?
Not by default. {"a":1,"b":2} and {"b":2,"a":1} are reported as identical. Turn off "Ignore key order" in the compare options if you do want key order treated as a difference.
What about arrays whose elements are in a different order?
By default that is a difference, because JSON arrays are ordered. You can turn on "Ignore array element order" when you need it; the diff view then shows the reordered canonical form rather than the order you typed.
Do large integers lose precision?
No. The comparison only moves original text around and never converts JSON into JavaScript numbers and back, so 9123372036854000123 and the trailing zero in 2.370 appear untouched in the result.
Is my data uploaded, and how large can the files be?
Nothing is uploaded: parsing and comparison both happen in your browser. Each side is limited to 2 MB; above that, minify it with the JSON formatter first or use a local tool.