Does this save or upload my JSON anywhere?
No. The diff runs entirely in your browser. Nothing is sent to a server, logged, or stored. Paste an internal API response or an IAM policy and close the tab; there is no copy left behind. To verify, open DevTools, switch to the Network tab, and watch — there are no outbound requests when you compare.
Will key reordering or pretty-printing JSON show up as a change?
Yes, both do. A text diff compares characters line by line, so reformatting, key reordering, or whitespace changes show up as differences even when the data is identical. Click the Format button on both panes to pretty-print first, and the diff focuses on real data changes. For a fully structural compare that ignores key order, sort the keys on both sides before diffing.
Does the order of keys in a JSON object matter?
For object keys, no — the JSON spec says objects are unordered, so {"a":1,"b":2} and {"b":2,"a":1} represent the same data. A character diff will still flag the reorder, which is why the Format button matters. Arrays are different: [1,2,3] and [3,2,1] are not equal because array order is meaningful in JSON.
Why does 0.1 + 0.2 not equal 0.3 in my diff?
Because IEEE 754 floating-point. 0.1 + 0.2 is actually 0.30000000000000004, and JSON.parse reads numbers as 64-bit floats. Big integers hit the same limit: anything past 2^53 - 1 (9007199254740991) loses precision, so a Twitter-style snowflake ID won't round-trip. If precision matters, store those as strings.
Can I paste JSON with comments or trailing commas?
Standard JSON does not allow either. { "a": 1, } or // comment will give you a parse error. That's JSON5 or JSONC (the format VS Code uses for settings.json), which is a superset. Strip the comments and trailing commas first. We follow the strict RFC 8259 grammar on purpose so the diff matches what your API actually accepts.
How big a JSON file can I diff before it gets slow?
Up to a few MB is fine, sub-second. Past 10 MB the browser starts to feel it, mostly because rendering the diff (not computing it) is what gets expensive. For 50 MB+ exports, filter both sides to the subtree you care about with jq first, then paste that.
Why does my VS Code settings.json fail to parse here?
Because settings.json and tsconfig.json are JSONC, not strict JSON. JSONC allows // line comments, /* block comments */, and trailing commas; strict JSON per RFC 8259 forbids all three. JSON5 goes further with single-quoted strings, unquoted keys, and hex literals. Strip the comments and trailing commas before pasting if you want a clean diff. If you keep both sides as JSONC, the parser-strict view of the diff is more useful anyway, since that's what your API consumer will actually accept.
How do you handle JSON numbers above 2^53?
You probably already lost precision before the diff ran. JSON has no integer type; everything is an IEEE 754 double. Numbers above Number.MAX_SAFE_INTEGER (2^53 − 1 = 9,007,199,254,740,991) round to the nearest representable double when parsed. Twitter snowflake IDs, Discord snowflakes, and Stripe object IDs ship as quoted strings for exactly this reason. If both sides are valid JSON, the precision loss happens identically on both, so the diff itself is faithful — but the displayed value may not match the source bytes. For ground-truth comparison of large IDs, quote them as strings or compare the raw text without JSON-parsing first.
Is it free, and do I need to sign up?
Yes to free, no to signup. There is no account, no trial, and no limit on how many times you compare. Paste your two JSON snippets and the diff appears right away. Nothing is locked behind a login, and the Copy and Download buttons hand you clean output with no watermark and no formatting injected.
How is this different from other online JSON diff tools?
The compare runs entirely in your browser, so your JSON is never uploaded — many online JSON diff sites POST it to a server first, which you cannot do with an internal API response or a secret-bearing config. Highlighting is character-level with semantic cleanup, not whole-line, so a single changed value in a 200-line object is easy to spot. There is also built-in Format, Minify, and live validation.
Can it compare two JSON files instead of pasted text?
Yes. Click Upload on either pane and pick a .json file straight from disk — load your old package.json on the left and the new one on the right without copy-paste. The file is read locally in the browser; it is never sent anywhere. Hit Format on both sides and the diff ignores whitespace, showing only the dependency lines that actually moved.
Can I compare more than two JSON files at once?
Not in one view. It is built for two sides, original and changed, because that is what a diff is. If you have three config versions, compare them in pairs — staging against prod, then prod against the proposed change. Each pair gives you a clean, focused result instead of a three-way merge view that hides which file introduced a given key.
Is it safe to paste an API response with tokens or keys?
Yes. The parse, format, and diff all happen on your machine, and nothing is uploaded, logged, or stored. A pasted JWT, API key, or customer record stays in the tab and is gone when you close it. To confirm, open DevTools, watch the Network tab while you compare, and you will see zero outbound requests carrying your data.