How do I compare two JSON documents?
Paste or type the first document into JSON A and the second into JSON B. Press Compare (or Ctrl+Enter). The summary panel immediately tells you how many properties were added, removed, modified, or changed type. Paste the text directly — there is no file picker, so copy the contents of your .json files into the editors.
Does key order matter?
By default, no — 'Ignore property order' is on, which follows the JSON specification: objects are unordered maps, so {“a”:1,“b”:2} and {“b”:2,“a”:1} are treated as identical. Turn it off for strict positional comparison; in that mode a reordered key is reported as one removed plus one added at the position it moved to, rather than as a move.
Can I compare nested JSON?
Yes. The comparison recurses through every level of nesting and reports the full dotted path for each difference — for example user.settings.theme, so you can pinpoint exactly where the change happened.
How large can the documents be?
There is no byte-size limit, and the test suite exercises documents with tens of thousands of keys. Identical subtrees collapse to a single comparison, so comparing two large documents that mostly match stays cheap. Documents nested more than 2,000 levels deep are rejected by the JSON parser before comparison starts.
How are arrays compared?
By default arrays are compared by index — element 0 against element 0, 1 against 1, and so on — so reordering items shows up as several modifications. Turn 'Ignore array order' on to match elements by their exact content regardless of position, which suits documents whose items arrive in a different sequence. Matching is exact rather than approximate: an element that actually changed is then reported as one removed plus one added instead of a modification, so the modified count drops to zero for array changes.
What counts as a type change?
A type change happens when the same path holds values of different JSON types — for example a number 36 in the old document becomes the string “36” in the new one. It is counted separately from ordinary modifications so type-level changes stand out, and appears in the Modified tab with a badge showing the old and new type. This compares the observed types in your two documents; it does not validate either one against a JSON Schema.
What does 'Ignore whitespace in string values' do?
It is off by default, so a change in spacing inside a string value is reported as a difference and "hello world" and "helloworld" are not identical. Turn it on when spacing-only changes should be treated as equal; when enabled, whitespace anywhere inside a string value — not just at the ends — is stripped before comparison. Formatting whitespace between keys and values is never affected either way, since both inputs are parsed before they are compared.
What does 'Case sensitive' do?
With this option on (the default), comparing “Hello” and “hello” reports a modification. Turn it off to treat strings as case-insensitive, which can be handy for config files where only casing differs.
Is my data sent to a server?
No. Comparing, diffing, and report generation happen locally in your browser. Your JSON documents are not uploaded to TechFixGen.
What happens if one input is invalid?
An error banner appears above the affected editor, naming which side failed and giving the exact line and column. The offending line is also marked in that editor's gutter. Use 'Jump to error position in JSON A' (or JSON B) to move the cursor straight there. The comparison runs automatically once the error is fixed.
Can I share or save the results?
Yes. Click 'Copy result' to put a structured JSON report on your clipboard, or 'Download report' to save comparison-report.json locally. The report contains every change along with the options used.
What are the keyboard shortcuts?
Press Ctrl+Enter (Cmd+Enter on Mac) to run the comparison immediately instead of waiting for the debounce, and Ctrl+Shift+S (Cmd+Shift+S on Mac) to swap the two editors. Comparison also runs on its own shortly after you stop typing.