Skip to content

Semantic JSON & YAML Diff

Compare JSON or YAML by paths and typed values, then export truthful JSON Patch or Merge Patch output when supported.

Local input limit: 2 MB · Processing timeout: 3 s
How can I verify this?

Open your browser DevTools and the Network panel, optionally clear existing requests, then run the tool. Page assets or consent-based analytics may still load, but tool payloads, files, keys, and results are not sent for processing.

Compare JSON or YAML structures

Object key order and formatting do not create differences. Missing values, null, value types, arrays, and numeric values keep their own semantics.

0 KB

0 KB

Comparison options

Ignore paths use RFC 6901 JSON Pointer syntax. Match key applies only to unordered arrays whose objects contain a unique primitive key.

Semantic comparison

Path-level changes and available patch outputs will appear here.

Structure-aware comparison

Unlike a text diff, this tool parses both documents and compares semantic paths and typed values. Whitespace, indentation, and object key order do not create noise.

Semantic boundaries

  • Missing and null remain different, and string, number, Boolean, array, and object types are compared strictly.
  • YAML comments are disclosed and ignored; tags, anchors, aliases, duplicate keys, non-string map keys, multiple documents, and unsafe numbers are rejected rather than flattened silently.
  • JSON Patch and Merge Patch are available only for two JSON inputs with ordered arrays, zero tolerance, no ignored paths, and no match key.
  • Merge Patch is withheld when RFC 7396 cannot represent the target truthfully, such as adding a property whose value is null.
  • Inputs and results stay in this browser and are bounded by input, depth, value, difference, worker-time, and patch-size limits.

Continue with tools that decode, convert, inspect, or verify the same data.

Compare configuration revisions

Paste the current and proposed JSON or YAML, choose array semantics when needed, then use paths to review each typed change. Export a patch only when the patch tabs are available.

Original

{"service":"api","replicas":2}

Changed

{"service":"api","replicas":3}

Semantic JSON & YAML Diff FAQ

How is this different from Text Diff?

Text Diff compares characters and lines. Semantic Diff parses JSON or YAML, so formatting and object key order do not hide actual typed value changes.

Why is JSON Patch sometimes unavailable?

A patch must have one exact transformation meaning. YAML input, ignored paths, tolerance, or unordered matching changes that meaning, so the tool does not emit a misleading patch.

Are YAML anchors and tags supported?

No. They can carry semantics that ordinary JSON values cannot preserve. The tool rejects them explicitly instead of comparing a silently flattened document.

Are the documents uploaded?

No. Parsing and comparison run in a disposable browser worker. Handoffs remain in memory and disappear on refresh.