Problem solved by Diff Anything macOSWindows

Compare JSON by structure, not line position

Diff two JSON files locally with semantic paths, typed values, array rules, ignored keys, numeric tolerance, and review state.

See it in the app

A focused workflow, on your computer.

No accounts, cloud comparison service, analytics, or telemetry.

Diff Anything comparing two JSON files, with user records matched by id and a changed role value selected
Diff AnythingSemantic JSON comparison explains changed paths and values beside the original sources.

The problem

Why the usual workflow gets in the way.

Formatting, property order, and large nested objects can bury the JSON changes that matter when a line-based diff treats the document as plain text.

The solution

How Diff Anything handles it.

Diff Anything parses both files and reports stable paths, change types, and typed values. You can add keyed or unordered array rules, ignore expected paths, and apply supported changes in either direction.

01 / Semantic comparison

Decide whether formatting is part of the question

Use a text diff when indentation, whitespace, or exact source lines matter. Use semantic JSON when the review is about keys, paths, typed values, and array membership instead of how the document was serialized.

The same pair can support both questions. Choosing semantic mode does not claim that formatting is irrelevant; it deliberately excludes formatting from that result.

  • Use stable paths to identify nested changes.
  • Keep typed values visible.
  • Return to text mode when source formatting matters.

02 / Semantic comparison

State array and tolerance rules explicitly

Array order may carry meaning, or identity may come from a key inside each item. Choose keyed or unordered behavior only where the data model supports it, and apply numeric tolerance only to paths where small variation is expected.

Ignored paths should describe known noise, not hide unexplained differences. With Pro, save the rules in a profile to reproduce a recurring comparison.

  • Use keyed arrays when a field identifies each item.
  • Use unordered arrays only when order is irrelevant.
  • Keep ignored paths narrow and reviewable.

03 / Semantic comparison

Resolve paths while retaining the source context

A structured result should expose the stable path, change type, typed values, severity, and a readable explanation. Keep the original sources available so an individual result can be interpreted in context.

Apply supported changes deliberately in either direction. A semantic diff explains what changed; it does not decide which side is correct.

Clear answers

Common questions about diff JSON files.

Does semantic JSON comparison ignore formatting?

Yes. Semantic mode parses the documents and focuses on paths and typed values. Use text mode when whitespace, indentation, or exact line movement is part of the review.

Can arrays be matched by an identity field?

Yes. Keyed-array rules can align items by a chosen field, while unordered rules are available when member order genuinely has no meaning.

Are the JSON files uploaded?

No. Diff Anything compares selected files and pasted content on the computer rather than sending them to a cloud comparison service.

Three short steps

Choose the meaning of the comparison before reading the result.

  1. 01

    Open the two JSON files.

  2. 02

    Choose semantic JSON comparison.

  3. 03

    Review, filter, and resolve changed paths.

Available for macOS and Windows

Solve it with Diff Anything.