RelicRELIC

JSON Diff

Paste two JSON documents and see the added keys, removed keys, and changed values, each with its path. Runs in your browser.

Runs entirely in your browser. Nothing you type is uploaded.
Left
Right
Paste valid JSON in both boxes to see what changed.

Spot what actually changed between two payloads

Paste one JSON document on the left and another on the right, and this tool walks both structures key by key and index by index to list exactly what is different. You get added keys, removed keys, and changed values, each tagged with a readable path like user.roles[0] so you can find it in the source. It is a structural diff, not a line diff, so reordered whitespace and formatting never trip it up. Both sides are parsed in your browser, and nothing is uploaded.

A diff is only as good as the old copy you kept

To compare two versions you need both versions, and the earlier one usually vanished three deploys ago. Relic quietly keeps an end-to-end encrypted history of everything you copy, searchable on every device, so the previous response body or config is still there when you go looking. The diff is free. Having the old payload at all is what Relic gives you.

Frequently asked questions

How do I compare two JSON files?

Paste one JSON document into the Left box and the other into the Right box, and the tool lists exactly what changed between them. You get a running count of added, removed and changed entries, and each difference is shown with a readable path so you can find it in the source. Both sides are parsed in your browser as you type.

Is this a structural diff or a line-by-line diff?

It is a structural diff. It parses both sides into real JSON and compares them semantically: objects key by key, arrays index by index, and everything else by value. That means reordered whitespace, indentation, or trailing commas in your formatting never show up as fake changes, which is the big advantage over a plain text diff.

How does it show where the change is?

Every difference is tagged with a path built from the keys and indexes that lead to it, like user.roles[0] or config.limits[2]. Keys that are not simple identifiers get bracket-quoted so the path stays unambiguous. Added and removed entries show the value, and changed entries show the old value and the new value side by side.

Why does reordering an array show up as a change?

Arrays are compared strictly by position, index by index, not as unordered sets. So if you move an item from the start of a list to the end, the diff reports every position that shifted as changed rather than recognizing it as the same element moved. That is the honest tradeoff of an index-based structural compare. For plain text comparison instead, try the diff-checker tool.

Does it upload my JSON?

No. Both documents are parsed and compared entirely in your browser, and nothing is sent to a server. The catch with any diff is that you need both versions to begin with, and the older one has often already vanished, which is exactly the copy history Relic is built to keep.

More free tools
JSON Formatter
json formatter
Base64 Encode / Decode
base64 decode
Diff Checker
diff checker
URL Encode / Decode
url decoder
UUID Generator
uuid generator
Epoch Converter
epoch converter
All tools