JSON Compare Online

Compare API responses, configuration snapshots or test fixtures without treating indentation as a change. Paste the original and updated JSON, then inspect a report of the paths that were added, removed or changed. Parsing and comparison happen in your browser.

How to compare two JSON documents

Put the earlier document in Original JSON and the newer document in Updated JSON. Select Compare to see an equal flag, a change count and a list of differences. For example, changing {"version":1} to {"version":2} produces a changed entry at /version with before 1 and after 2. Reordering properties or changing indentation alone produces no difference.

Understand paths and missing properties

Each report path identifies a location using JSON Pointer notation. /user/name points to the name property inside user, while /items/0 points to the first array element. A literal slash in a property name becomes ~1 and a tilde becomes ~0, so names containing punctuation remain unambiguous. A missing property is different from a property whose value is null.

Decide whether array order matters

Arrays are compared by position. Swapping two records therefore changes their indexed locations even if the same records are present elsewhere. This works for ordered lists and API fixtures. It does not match records by an id field or calculate the smallest edit sequence. If order is irrelevant to your application, sort both arrays consistently before comparing them.

Check number precision and document limits

Each input accepts up to 100,000 characters, 20,000 parsed values and 100 nesting levels. Integers outside JavaScript’s safe integer range are rejected; quote exact identifiers before comparison. Decimal numbers use JavaScript number precision, and duplicate object keys keep their final value. The result is a diagnostic report, not an executable JSON Patch document or a schema validator.

Technical references: JSON Pointer notation · JSON data interchange format

JSON Compare FAQs

No. A number and a string have different JSON types. The report labels that difference as type changed even when the visible characters look similar.
The comparison operation runs locally and does not upload the pasted JSON. Copying or downloading the report is a separate action you control.
An empty JSON Pointer identifies the entire document. It appears when the root value changes, such as replacing a top-level number with an object.