Compare JSON values instead of formatting
Paste the original JSON on the left and the updated JSON on the right. The tool parses both documents and compares the resulting data structures. Whitespace, indentation and the order of object keys do not create false differences because they are formatting choices. A changed value, an added key or a removed key does appear. This makes the comparison useful when two API responses look different on screen but you want to know whether their data actually changed.
JSON arrays are ordered lists, so their positions are compared by index. Moving a value from one position to another can therefore produce two changes. That behavior is deliberate: an array of steps or ranked results may have a different meaning after reordering. For a data set where array items have stable IDs but order is irrelevant, align or sort the records first using a domain-specific rule before interpreting this structural diff.
Read paths in the result
Each difference is labelled with a JSON Pointer-like path. A key called name at the top level appears as /name; the second element of an array called roles appears as /roles/1. The output distinguishes added, removed and changed values. Paths escape special characters in keys, so a slash inside a key is written as ~1 and a tilde as ~0. This lets you find the precise location in a nested document rather than searching the whole file.
Try the built-in example: the original object has name Ada and one role, while the updated object has name Grace and an additional editor role. The result should show a changed /name and an added /roles/1. If you merely indent one document differently, no structural difference appears. If you replace the string "1" with the number 1, the change is real because JSON strings and numbers are different types.
Use it in an API or configuration workflow
Compare a response before and after a deployment, two versions of a configuration file, or an expected fixture against actual output. Copy the reported paths into an issue so a teammate can reproduce the finding. The data remains in the browser during comparison, which is useful for local inspection, but think carefully before pasting sensitive values into tickets or sharing a screenshot of the result.
A good workflow starts by validating both documents. Fix syntax errors such as trailing commas or comments, which standard JSON does not allow. Run the diff, inspect the first changed path and decide whether the difference is meaningful for your application. If the output shows many array-index shifts, check whether an order change caused the cascade before assuming every element was independently edited.
Limits and interpretation
The comparison is structural, not a schema validator or a semantic test of your application. It cannot know whether two different URLs refer to the same resource or whether a renamed field is intentional. Very large inputs are limited, and the display stops after the first 500 changes to keep the page responsive. Preserve the originals if you need a complete audit of a much larger document.
Standard JSON parsing collapses duplicate object names according to the parser’s behavior, so do not use this tool to investigate ambiguous documents with repeated keys. Numeric values also use JavaScript’s number representation; integers beyond its safe range should be handled by a specialized exact-number parser. The tool is most reliable for ordinary API payloads and configuration files whose JSON values fit that model.