Decide whether you are comparing layout or data
Two JSON documents can use different indentation while containing the same data. Compare JSON analyzes values: object property order does not matter, but array order does. Formatting makes a structure easier to read without establishing that its fields satisfy the destination’s schema or purpose.
Use clearly identified versions and retain which is before and which is after. Inspect a known change to understand the report. The string "2" differs from the number 2. If a code such as "001" must retain leading zeros, keep it as a string rather than turning it into a number merely to simplify comparison. That choice affects both interpretation and preservation.
Read paths in the difference report
Each difference shows a JSON Pointer path and whether a value was added, removed or changed. In /users/0/name, 0 selects the first array item. It is different from PDF page position one or a printed table label: array indexes begin at zero rather than one.
Keys containing / use ~1 and keys containing ~ use ~0. The path /a~1b queries a property named a/b. An empty path returns the whole document. JSON Pointer lookup does not support JSONPath, wildcards or URI fragments. Enter an exact path and check that it exists before relying on the extracted value as the answer to your query.
Understand rejected inputs and limits
Comparison and pointer lookup reject duplicate keys, integers outside the safe range and nesting beyond one hundred levels. Hiding whitespace does not fix those problems. If a large identifier should be text, its source representation must preserve it as a string; accepting a rounded number does not restore the original identifier.
Comparison accepts one million characters per document and up to one thousand differences. Split large structures into meaningful units and record which fragments were compared. A missing path differs from a property holding null. Inspect both the source and path to distinguish a selection error from a valid empty value before interpreting the output.
Prepare review tables without losing context
JSON to Markdown table accepts an array of objects and collects keys from every row. Missing properties and null produce empty cells, while nested structures appear as compact JSON. Special characters are escaped and line breaks appear as ↵. This supports human review but does not preserve every distinction as a reversible export.
For CSV sources needing only a different separator, use Change CSV delimiter. Replacing commas as ordinary text can break quoted cells. Check headers, leading zeros and a cell containing punctuation. Save the original JSON alongside your difference report or table so ambiguities can be investigated against the complete source rather than a simplified display.
A changed value and a key containing a slash
Paste the first object as document A and the second as B in Compare JSON. Property order differs and the first user’s name changed. Compare, then query the second document in JSON Pointer.
Before: {"users":[{"name":"Ana"}],"a/b":2}
After: {"a/b":2,"users":[{"name":"Luis"}]}There is one changed difference at /users/0/name, from Ana to Luis. Property reordering creates no extra differences. Querying /a~1b returns 2.
Query /users/0/name as well to obtain Luis. The path /users/1/name fails because there is no second user: absence is different from a null value.