ToolzyLab ToolzyLab

JSON Diff Checker

Compare two JSON objects or files side by side, validate them instantly, and highlight added, removed, changed, and type-changed values visually. Perfect for API responses, config files, payloads, exported data, and structured debugging.

Visual JSON comparison made easy

Paste JSON into both panels or upload two files. This tool validates, beautifies, normalizes, compares deeply, and gives you a clean visual diff with paths, old values, new values, and summary counters โ€” all locally in your browser.

๐Ÿ†š Side by Side Diff โœ… Validate JSON ๐ŸŒฒ Deep Compare ๐Ÿ“„ File Upload ๐Ÿ“‹ Copy Report ๐Ÿ”’ Browser Only
{A}

Upload Left JSON

Drop or select the original / old / source JSON file.

๐Ÿ“„ left JSON ยท original data
{B}

Upload Right JSON

Drop or select the updated / new / target JSON file.

๐Ÿ“„ right JSON ยท updated data

Comparison Controls

Normalize formatting, choose comparison behavior, and generate a professional visual diff report.

๐ŸŸก Waiting for two valid JSON inputs
Ready. Paste or upload two JSON inputs to compare.
StatusWaiting
Total Changes0
Added0
Removed0
Changed0
Type Changed0
Compared Paths0

Left vs Right JSON

Paste raw JSON in both editors. The tool validates, beautifies, and compares them deeply.

Left idle Right idle Diff idle

Left JSON

0 chars 0 lines
Waiting for left JSON
No left file

Right JSON

0 chars 0 lines
Waiting for right JSON
No right file

Visual Diff Tree

Each row shows the JSON path, change type, and before/after value snapshot.

Tree idle
Compare two valid JSON inputs to see the visual diff tree here.
Green means added, red means removed, purple means changed, and amber means the value type changed.

Detailed Change List

Inspect every changed path with old and new values side by side.

List idle
No diff report yet.

Summary Report

Quick human-readable report of validation and diff results.

Report idle
No report yet.

Notes

Helpful tips for tricky comparisons.

When array order matters, keep Strict order on. When your arrays contain the same values in different positions, use Ignore order to reduce noisy diffs.
Path-level comparison for structured data

Compare parsed JSON values while making array order, type coercion, whitespace, and hidden unchanged nodes explicit

A JSON diff should compare data structure rather than indentation. Load two valid documents, choose array behavior, numeric-string and trim options, path filtering, preview depth, unchanged-node visibility, and primary view, then inspect added, removed, changed, and type-mismatched values at their exact paths.

Parsing

Both inputs must be valid JSON before structural comparison has meaning

Comments, trailing commas, single quotes, NaN, undefined, and duplicate-key behavior are common sources of confusion. Validate and beautify both sides first. Parsers typically keep only one value for a duplicate object key, so fix ambiguous input before relying on a diff report.

Arrays and types

Array order and value types are application semantics, not cosmetic options

A reordered list can be either a real change or an equivalent set depending on the contract. Numeric strings and numbers can look similar but behave differently in schemas and APIs. Enable coercion only for a known comparison goal, and review duplicates when treating arrays without order.

Scope

Path filters and hidden unchanged nodes reduce noise but can hide necessary context

Filter to a subtree when investigating one contract, then return to the full document before approval. Expanded previews help understand nested objects, while a concise report helps sharing. Protect secrets in payloads and reports, and use schema validation when field presence and type rules matter.

Practical review

Structured JSON comparison

Record the comparison options because they affect what counts as a difference.

  • Validate both documents and resolve comments, trailing commas, and duplicate keys.
  • Decide whether array order and duplicate items are meaningful.
  • Keep strings, numbers, booleans, and null distinct unless the contract says otherwise.
  • Review the full tree after using a path filter or hiding unchanged nodes.
  • Remove secrets and pair the diff with JSON Schema or API contract validation.

Technical references: RFC 8259 JSON specification

JSON comparison questions

Formatting, array order, numeric strings, duplicate keys, paths, and schema validation

Does JSON indentation affect the diff?

A structural comparison parses values, so ordinary whitespace and indentation outside strings do not matter. Whitespace inside string values can still be significant.

Should JSON array order be ignored?

Only when the application treats the array as an unordered set. Lists, priority rules, coordinates, and event sequences usually depend on order.

Are the number 10 and the string "10" equal?

Not in JSON. They have different types. Coercing numeric strings can reduce noise for a specific dataset but may hide a contract-breaking change.

What happens when a JSON object repeats the same key?

JSON interoperability expects unique names, but parser behavior often keeps one value. Resolve duplicate keys before comparison because earlier data may already be lost.

What is a JSON path filter used for?

It narrows the report to a selected property or subtree. Use it for investigation, then review the full document before approving a change.

Can a JSON diff replace schema validation?

No. A diff compares two instances; a schema checks required properties, allowed types, formats, ranges, and other contract rules.