DARINORCold Lab

Tools / JSON Diff

JSON Diff

Compare two JSON documents side by side — structural differences with exact paths, not line noise. Runs entirely in your browser; nothing is uploaded.

Differences
3 diffs

3 differences found (1 added, 0 removed, 2 changed).

  • /limits/requestsPerMinchanged
    -60
    +120
  • /rolechanged
    -analyst
    +senior analyst
  • /tags/2added
    + systems

// About this tool

JSON Diff

This tool compares two JSON documents structurally rather than line by line. Paste an original and a modified version, and every difference is reported with the exact path where it occurred — key order and formatting differences are ignored, so you see what actually changed.

Differences come in three kinds: added (a key or array element that didn't exist before), removed (one that disappeared), and changed (a value that was replaced). Each result also includes the equivalent RFC 6902 JSON Patch, ready to apply programmatically.

Everything runs locally in your browser — your JSON is never uploaded, which makes it safe to compare real API payloads, configs, and schema drafts.

// When to use it

  • Review a config change before merging

    Compare the old and new versions of a config file and see exactly which keys changed — not just which lines moved.

  • Check what an API returned vs. what you expected

    Paste the expected response and the actual response; the diff shows every field that's missing, extra, or different, with its path.

  • Track drift across environments

    Compare the same JSON from staging and production to catch values that silently diverged — permissions, limits, endpoints.

// Questions

Is my JSON uploaded to a server?

No. The diff runs entirely in your browser via JavaScript. Nothing you paste is sent anywhere, which makes it safe for real payloads and internal configs.

Does JSON Diff care about key order or formatting?

No. Comparison is semantic: objects are matched by property name and arrays are aligned on their contents, so reordering keys or reformatting whitespace produces no differences.

What does the path in a result mean?

It's an RFC 6901 JSON Pointer locating the difference inside the document — for example /user/email or /items/0/name. The same path form works with the exported JSON Patch.

What is the JSON Patch export?

An RFC 6902 patch: an array of add/remove/replace operations that transforms the original document into the modified one. It can be applied with any RFC 6902 library.

How are arrays compared?

Arrays are aligned with a longest-common-subsequence match on element contents, so a single inserted element is reported as one addition rather than a cascade of changes. Elements whose stable keys match but whose values differ are reported as changed.

This site uses minimal cookies and local storage to keep features like the chat widget and games working. We do not use third-party tracking cookies. Privacy Policy