Compare two JSON payloads and see exact differences.
Side-by-side or unified diffs for any two JSON objects or arrays. Toggle key sorting to ignore property order, inspect semantic path changes, and verify equivalence instantly.
JSONGlow's JSON Compare is a free online diff tool that compares two JSON objects or arrays side-by-side with semantic key-order invariance and zero data transmission.
Semantic Comparison Engine
Why semantic JSON diffing outperforms textual line diffs.
Comparing two JSON documents using generic text diffing tools often produces confusing, noisy results. In the official JSON specification (RFC 8259), object keys are defined as an unordered collection of name/value pairs. Two JSON responses with different key ordering contain identical data, yet textual diffs will flag every single line as a conflict.
JSONGlow's JSON Compare engine addresses this problem at the Abstract Syntax Tree level. By enabling 'Ignore Key Order', the engine recursively sorts keys across all nested objects before computing differences, completely eliminating false positives. To learn more about this technique, read our in-depth guide on Comparing JSON Ignoring Key Order or format your files beforehand with the JSON Formatter.
You can toggle between three specialized visualization modes: Split View for side-by-side visual code comparison, Unified Diff for a compact Git-style patch representation, and the Changes Table for an itemized, searchable inventory of every modified property path.
Everything runs entirely in your browser sandbox. Whether comparing production environment secrets, sensitive customer payloads, or database snapshots, your proprietary data never leaves your computer. If one of your files has syntax defects, you can fix them using the JSON Repair Tool or validate exact grammar with the JSON Validator.
Workflow Guide
How to compare two JSON documents in 3 steps
Input original & modified data
Paste your baseline (original) JSON on the left and modified (target) JSON on the right.
Split, unified, or table view
Toggle 'Ignore Key Order' to disregard non-semantic key permutations, and select Split View, Unified Diff, or Changes Table.
Identify exact mutations
Examine highlighted additions (green), deletions (red), and modified values, or download the `.diff` patch file.
Practical Demonstration
Semantic Key-Order Invariant JSON Comparison
Notice how JSONGlow detects semantic equivalence even when object keys are ordered differently.
// Original (Left)
{
"status": 200,
"service": "auth-service",
"version": "1.4.0"
}
// Modified (Right - Key Order Changed + Version Updated)
{
"version": "1.5.0",
"service": "auth-service",
"status": 200
}// 1 Difference Detected (version 1.4.0 -> 1.5.0)
// Key order reordering is ignored
{
"service": "auth-service",
"status": 200,
- "version": "1.4.0"
+ "version": "1.5.0"
}Diffing Pitfalls & Edge Cases
Common JSON comparison challenges
False diff alarms caused by arbitrary JSON key ordering
Why it happens: Standard Git or text diff engines treat `{ a: 1, b: 2 }` and `{ b: 2, a: 1 }` as different lines even though they represent identical JSON data.
Diff failure due to syntax errors in one input
Why it happens: If either Left or Right JSON contains invalid syntax (like a missing comma), semantic diff engines cannot parse the Abstract Syntax Tree.
Array element reordering vs object key reordering
Why it happens: In JSON, object key order is unordered, but array element order is strictly ordered (`[1, 2]` is NOT equal to `[2, 1]`).
Core Capabilities
Precision diffing built for modern engineering
Recursive Key-Order Invariance
Deeply sorts object keys across all nesting levels to eliminate false positive diff noise.
Synchronized Split View
Side-by-side dual editor with synchronized scrolling and red/green visual change highlights.
Git-Style Unified Diff
Generates clean `+` and `-` line patches with one-click `.diff` file download.
Itemized Changes Table
Lists every modified path with searchable before/after values and change categorizations.
Instant Payload Swapping
Swap Left and Right inputs with one click to reverse baseline and comparison directions.
100% In-Browser Privacy
Zero server uploads. Compare confidential configuration files and database exports safely.
Frequently Asked Questions
Common questions answered.
Need more help? Our tools execute entirely in your browser without transmitting any payload to remote servers.
Why do regular text diff tools fail when comparing JSON?+
Standard text diffing tools compare line-by-line character sequences. In JSON, object keys have no intrinsic order (RFC 8259). When two APIs or microservices return the same data with properties in different orders, text diff tools report hundreds of false positive conflicts. JSONGlow normalizes and compares JSON semantically.
How does 'Ignore Key Order' work in JSON Compare?+
When 'Ignore Key Order' is enabled, JSONGlow performs a recursive deep sort on all object keys across both inputs before diffing. This ensures you only see genuine data additions, removals, and value modifications.
What is the Changes Table view?+
The Changes Table view extracts every difference into a structured, searchable table showing the exact dot-notated JSON path (e.g., `config.database.port`), old value, new value, and change type (added, removed, modified).
Can I download a Git-compatible patch file of the diff?+
Yes. Click 'Download .diff' in the toolbar to save a unified `.patch` or `.diff` file compatible with standard Git and command-line patch utilities.
Is my JSON comparison data uploaded to any server?+
Never. All parsing, canonical key sorting, and diff computations execute 100% locally in your browser's memory without sending telemetry or payload bytes over the network.
Explore More Tools & Guides
The JSONGlow developer kit.
JSON Formatter
Format, beautify, indent, sort keys alphabetically, and inspect nested JSON structures.
YAML ↔ JSON
Bi-directional YAML 1.2 converter for K8s manifests, Docker Compose, and GitHub Actions.
JSON Repair
Auto-fix unquoted keys, single quotes, trailing commas, missing commas, comments, and Python literals.