Data Diff
Compare two JSON, YAML, or TOML documents by structure, not text: added, removed, and changed values with their paths. Key order and formatting are ignored. Runs in your browser.
Prefer the terminal? See the CLI equivalent →About the Data Diff
- JSON, YAML & TOML
- Structural, not text, diff
- Changes highlighted in both editors
- Instant results
- 100% private — runs in your browser
- Free, no sign-up
Compare two documents by meaning rather than text — in JSON, YAML, or TOML. Key order and whitespace are ignored, so only real differences show up: each is reported as added, removed, or changed, with a path like $.config.retries or $.items[2].
This is far more useful than a line-based text diff for configs and API responses, where the same data is often formatted or ordered differently. A reordered mapping counts as identical; a genuinely new or changed value is what gets flagged — and it’s highlighted in place in the editors (JSON and YAML).
Pick the format, paste a document on each side — or send one in from another tool to prefill the left — and the differences update live. Everything runs in your browser; nothing is uploaded.
How to use it
- Choose the format (JSON, YAML, or TOML).
- Paste the “before” on the left and the “after” on the right.
- Read the summary — added / removed / changed counts.
- Scan the list and the in-editor highlights; edit either side to update live.
How the comparison works
- Mapping keys
- Compared by name, not order — reordering is not a difference.
- Arrays / sequences
- Compared by index; a shorter/longer list shows added or removed items.
- added
- A path present on the right but not the left.
- removed
- A path present on the left but not the right.
- changed
- A path whose value (or type) differs between the two.
- Highlighting
- Inline in the editors for JSON and YAML; TOML shows the list only.
Frequently asked questions
Which formats can it compare?+
JSON, YAML, and TOML. Both sides must be the same format. Because it parses each document to a plain structure before comparing, the diff logic is identical across formats.
How is this different from a text diff?+
A text diff compares characters and lines, so reformatting or reordering keys shows up as noise. This parses both sides and compares them structurally, reporting only real semantic differences with their paths.
Are the differences highlighted in the editors?+
Yes for JSON and YAML — removed/old values are highlighted in the Before editor and added/new values in the After editor. TOML shows the path-based diff list only, because its parser doesn’t expose source positions.
Does key order matter?+
No. Object/mapping keys are matched by name, so a reordered mapping is considered identical. Array and sequence order is significant, since order carries meaning there.
Is my data uploaded?+
No. Both documents are parsed and compared entirely in your browser; nothing is sent to a server.
Works well with
Data Diff chains with these tools — send your result straight on:
Related tools
Code Formatter
Format and beautify JSON, YAML, TOML, XML, HTML, and CSS — with JSON/CSS minify and JSON schema validation.
HAR Viewer
Open a .har network export and explore its requests, sizes, status codes, and a timing waterfall — entirely in your browser. Nothing is uploaded.
JSON ↔ YAML ↔ TOML
Convert structured data between JSON, YAML, and TOML, live in your browser.
JSON to SQL
Infer a SQL CREATE TABLE from a JSON sample or a JSON Schema — column types, nullability, and a primary-key guess — for PostgreSQL, MySQL, or SQLite. Runs in your browser.
JSON to Types
Turn a JSON sample or a JSON Schema into TypeScript, Zod, Go structs, Python dataclasses, Kotlin data classes, or Java records/Lombok. Infers optional and nullable fields. Runs in your browser.
JSONPath Tester
Query JSON live with JSONPath — filter, slice, and recurse, and see each matched value with its path, all in your browser.