JSON Diff & Compare Tool

Compare two JSON documents semantically — key order and whitespace never count as differences

Original JSON

Modified JSON

Structural Diff Report

Paste JSON on both sides to compare

More JSON Tools

JSON Formatter

Format, validate, and explore JSON — 100% client-side, private by design

XML to JSON

Paste XML, get clean JSON — attributes, repeated elements and text nodes handled correctly

CSV to JSON

Turn CSV rows into JSON arrays of objects — quoted fields, custom delimiters and types handled for you

JSON to CSV

Flatten nested JSON into clean CSV columns — download Excel-ready .csv files in one click

JSON Minifier

Compress JSON to a single line and watch exactly how many bytes you save

JSON Diff ●

Compare two JSON documents semantically — key order and whitespace never count as differences

JSON Escape

Escape JSON strings for embedding — or unescape stringified logs back into readable JSON

JSON Fixer

One-click repair for broken JSON, JSON5, JS objects, Python dicts and truncated LLM output.

JSON to TypeScript

Turn any JSON payload into clean TypeScript interfaces or type aliases — merge arrays, detect optional fields and unions.

YAML to JSON

Parse YAML configs — K8s, Docker Compose, GitHub Actions — into clean JSON, then explore and edit visually.

JSON to YAML

Generate clean, idiomatic YAML from any JSON — smart string quoting, compact list style, 2 or 4 space indent.

JSON to XML

Serialize JSON to well-formed XML — @_ attributes, repeated elements, text nodes and safe tag names.

JSON Schema

Infer a standards-compliant JSON Schema from example data — formats, required keys, unions and additionalProperties control.

JSONPath Tester

Query any JSON with live JSONPath evaluation — wildcards, recursive descent, slices and filters, all in your browser.

Key Features

Semantic, Not Textual

Key order and indentation don't matter — {a:1,b:2} equals {b:2,a:1}. Only real value and structure changes are reported.

JSONPath-Precise Reporting

Every difference is reported with its exact JSONPath ($.config.timeout, $.endpoints[3]) so you know precisely where the change is.

Added / Removed / Modified

Differences are color-coded — green for added, red for removed, amber for modified or type-changed — with summary badges and one-click filters.

Works with Minified JSON

Paste minified or differently formatted JSON on either side — the parser normalizes both before comparing.

How to Use JSON Diff & Compare Tool

1

Paste Both JSON Documents

Put the original JSON on the left and the modified version on the right — formatted or minified, it doesn't matter.

2

Compare

Differences are computed automatically as you type (or click "Compare"). Use "Swap" to flip the sides.

3

Review the Diff Report

Filter by Added, Removed, or Modified and read each change's JSONPath plus its old → new values.

Technical Architecture & Privacy Comparison

How formatjson.net compares to traditional server-based JSON formatters and converters

100% Client-Side Execution Zero Server Upload RFC 8259 & RFC 4180 Compliant IEEE-754 64-Bit Int Safe JSON Schema 2020-12 Offline-Ready PWA
Capability / Standard formatjson.net (Client-Side Workbench) Traditional Server-Based Tools
Data Processing & Privacy 100% local in-browser JavaScript — payloads never leave your device Often uploads JSON/XML/CSV to remote backend servers
Confidential API Keys, JWTs & PII Safe by design — zero network transmission, works offline via Service Worker Risk of server access logs or third-party data retention
Broken & Truncated LLM JSON Repair 1-click lexical state machine fixes comments, single quotes, trailing commas, Python literals & unclosed brackets Fails with syntax error on non-strict JSON
64-Bit Snowflake IDs & Leading Zeros Preserves unsafe integers (> 2^53 - 1) and leading-zero codes ("00123") without precision loss Silently truncates 64-bit IDs or strips leading zeros
Deep Nested Array Exploration Interactive spreadsheet drill-down ([n items] →) with breadcrumbs, 3-state sorting & inline cell editing Flat root-only tables or read-only trees
Large File Responsiveness Chunked lazy tree (200 nodes/batch) + paginated table + 150 KB highlight guard Main-thread DOM freeze on multi-megabyte files

Frequently Asked Questions

How is semantic JSON diff different from a plain text diff? ▾

A text diff compares lines, so reformatting or reordering keys floods the report with false changes. A semantic diff parses both documents and compares the actual data structure — only genuine value and shape differences are shown.

Does key order matter when comparing two JSON objects? ▾

No. {"a":1,"b":2} and {"b":2,"a":1} are considered identical. JSON objects are unordered by specification, and this tool respects that.

How are added, removed, and modified JSON fields highlighted? ▾

Each difference gets a color-coded row: green + for added fields, red − for removed ones, and amber ~ for modified values or type changes — each labeled with its full JSONPath and the before → after values.

Can I compare unformatted or minified JSON payloads directly? ▾

Yes. Both sides are parsed with JSON.parse before comparison, so minified, pretty-printed, or mixed inputs all work identically. Use the Format button to pretty-print either side first if you like.

Are confidential API responses safe to compare in this JSON diff tool? ▾

Yes. The comparison is computed entirely in your browser — nothing is sent to a server. It's safe for production payloads, tokens, and internal configuration.