Utilities
JSON Diff
Paste JSON on the left, hit Run, copy text that matches the job: sorted, slugged, hashed, or compared. No Node, no pip, no Docker for a five-minute job. That is the json diff.
Drop a file on the left. Drafts stay in this browser. Shortcut: Ctrl or Cmd + Enter to run.
How this json diff works
- Paste or drop a .json file into the input on the left.
- Flip options if you see them (comments, indent, case). Defaults are the safe ones.
- Hit Run, or Ctrl / Cmd + Enter. Leave “Process on server” off unless you mean it.
- Read the status line, then copy, download, or jump to a related tool.
What this json diff is for
The file is already in front of you. You need to transform it without opening a whole IDE profile. Paste, run, copy. Typical timing: the editor is overkill and a CLI is not open yet.
You walk away with text that matches the job: sorted, slugged, hashed, or compared.
What it will not pretend to be
This is not a security product. Obfuscation is delay, not protection. JSON has no comments, no trailing commas, and no undefined. If your payload has those, you want JSONC or a JS object — not strict JSON.
By default nothing leaves the tab. Tick “Process on server” only if you want to compare results or use gzip numbers that match the server library.
A practical way to use it
Drop a .json file onto the input or paste. Flip options if they are there. Run. Read the status line. Copy or download. Drafts stay on this device so a refresh does not punish you.
When you are done, hop a related tool instead of starting over: minify and beautify toss the file back and forth, format and validate often share a parser, convert wants valid input first.
The small print that saves a round-trip
JSON has no comments, no trailing commas, and no undefined. If your payload has those, you want JSONC or a JS object — not strict JSON.
You searched “json diff online.” You got an editor, not a login wall. That is the deal.
Frequently asked questions
When would you reach for a json diff?
Use it when the job is smaller than an IDE: sort lines, slug a title, mint a UUID, compare two blocks. It will not version your project. It will finish the five-minute task.
Should I transform JSON before I go live, or while I edit?
Edit in a readable shape. transforming belongs to the moment the file has to be understood (beautify/format/validate) or the moment it leaves your hands (minify/encode). Mixing those moods is how minified HTML becomes your only source of truth — a sad place to live.
Can transforming JSON break what I already put live?
JSON has no comments, no trailing commas, and no undefined. If your payload has those, you want JSONC or a JS object — not strict JSON. Glance at the output once. A 20-second read beats a 20-minute “why did production go weird” thread.
Got a simple before-and-after for json diff?
Sure. Before: { "ok": true, "n": 1 } After: {"ok":true,"n":1}. That is the whole mood of the tool — same job, different clothing. If your real file is huge, try a representative slice first so you can see the rule, not a wall of text.
What about comments, strings, and data that look like code?
Strings are data. 'a + b' is not math. Comments are notes — minify may drop them, beautify should keep them if the engine sees them. JSON has its own trap: JSON has no comments, no trailing commas, and no undefined. If your payload has those, you want JSONC or a JS object — not strict JSON.
Any fun JSON fact worth remembering?
Fun fact: JSON forbids comments, trailing commas, and NaN. That “JSON” from a JS object literal — {n: 1,} — is a different language wearing the same braces.
Do I still need a bundler, Prettier, or a schema tool?
For an app in git: yes — keep the project formatter and the bundler. This json diff is for the five-minute paste: a log line, a vendor dump, an email template, an API body. Different altitude, same mountain.
When should I not use a json diff?
Skip it when the file is a binary, when you need a full language compiler, or when a single sample cannot represent the format (Excel workbooks, YAML with anchors, HTML that is really a React tree). Also skip minify as your only copy of source. Keep a readable original.