JSON File Comparator

Compares two JSON documents at the file level: whether the raw text is byte-identical, whether the parsed values are semantically identical regardless of key order, and, when they differ, a capped list (up to 20) of differing paths with their old and new values. Unlike JSON Diff's structural line-by-line diff view, this reports file-level equality plus a capped summary list. A free online tool from Staaarter, right in your browser.

Runs locallyUpdated 2026-07-24

Overview

Introduction

Sometimes the question isn't "show me every change", it's simply "are these two files the same?", and if not, roughly how different.

This tool answers that file-level question directly, with a capped summary of differences rather than a full structural diff.

What Is JSON File Comparator?

A file-level JSON comparison tool that reports byte-identical text equality, semantic (key-order-independent) equality, and, when the documents differ, a capped list of differing paths with their old and new values.

It deliberately doesn't replicate JSON Diff's line-by-line structural view, it answers a different question: are these effectively the same file, and if not, what's a representative sample of what changed.

How JSON File Comparator Works

Both inputs are parsed independently (reporting a clear parse error and which side it came from if either fails), then compared as raw strings for byte-identical equality and as canonicalized JSON (recursively key-sorted, then JSON.stringify'd) for semantic equality.

If the canonical forms differ, a recursive walker collects differing leaf paths from both documents in lockstep, using the same dot/bracket path notation as JSON Object Flattener, stopping once 20 differences have been collected.

When To Use JSON File Comparator

Use it for a quick equality check between two versions of a config file or API response snapshot before deciding whether a deeper diff is even necessary.

It's also useful when you specifically want a capped summary rather than being shown every single change in a document with hundreds of differences.

Features

Advantages

  • Answers the simple equality question directly instead of requiring you to read through a full diff to conclude nothing important changed.
  • Semantic comparison ignores key order, so reformatted or re-serialized JSON with the same content correctly reports as equal.
  • The capped path list stays readable even against a very large, heavily different document.

Limitations

  • The differing-paths list is capped at 20 entries, it's a representative sample, not a complete change set, for large diffs.
  • Array comparisons are positional (index by index), so an array that's merely reordered will show up as many differing paths rather than being recognized as a reordering.

Examples

Key order differs but content matches

Input

A: {"a":1,"b":2}
B: {"b":2,"a":1}

Output

Byte-identical: no
Semantically identical: yes

The raw text differs in key order, but canonicalizing both by sorting keys shows they represent the same data.

Best Practices & Notes

Best Practices

  • Check semantic identity first, if it's true, you're done, there's no need to read the (empty) differences list.
  • Use JSON Diff instead when you need to review every single change, not just a capped sample.
  • For arrays that may be reordered rather than genuinely changed, sort them consistently in both documents before comparing if reordering shouldn't count as a difference.

Developer Notes

Canonicalization reuses the same sortJsonKeys helper as formatJsonSorted, so semantic equality here is defined consistently with how the rest of the JSON category already treats key-order-independent comparison, rather than introducing a second, subtly different canonicalization scheme.

JSON File Comparator Use Cases

  • Quickly confirming two config file versions are functionally equivalent before a deploy
  • Checking whether an API response changed between two captured snapshots
  • Getting a representative sample of differences without wading through a full line-by-line diff

Common Mistakes

  • Expecting a full change list for a document with more than 20 differences; the list is intentionally capped, use JSON Diff for the complete set.
  • Assuming reordering an array counts as "no difference"; array comparison is positional, so a reordered array reports as changed.
  • Reaching for this when you actually want to review every change in detail, that's what JSON Diff's structural view is for.

Tips

  • If semantic identity is true, you can stop there, no need to read the differences list.
  • Switch to JSON Diff if the capped list here tells you there's a lot to review and you need the full picture.

References

Frequently Asked Questions