JSON / COMPARE

Compare JSON changes without object-key noise

An order-status example that separates changed fields from formatting and explains ordered arrays.

A reproducible software example using fictional data. Source references and conversion limits are included below.

Two API responses can look very different while carrying the same object fields. A text diff sees line movement; a structural comparison asks which values changed. SyntaxPad compares parsed JSON, ignoring object key order while keeping array order meaningful.

Compare an order update

Before:
{"id":"SP-1042","status":"pending","items":["paper","ink"],"note":null}

After:
{"items":["paper","ink"],"id":"SP-1042","status":"paid","tracking":"ZX-81"}

Use JSON Compare’s built-in example and select Compare JSON. The result contains three differences: /status changed, /note was removed, and /tracking was added. Moving items to the beginning of the second object produces no extra change.

Read the paths

Paths use JSON Pointer escaping. A key named a/b appears as /a~1b; a tilde becomes ~0. An array element uses its numeric index, starting at zero. The comparison report includes a before or after value when relevant, so you can inspect both the location and its content.

Array order is not ignored

Change the second list to ["ink","paper"] and compare again. Both positions change. This tool does not infer that a list is a set, match records by an ID field or classify a movement as a single “move.” If your application treats an array as an unordered collection, normalize it with a known business rule before comparing. Sorting every array automatically can conceal a meaningful sequence change.

Missing is not null

Removing note is different from leaving "note": null. A receiving API may interpret an absent field as “leave unchanged” and a null field as “clear it,” but that meaning belongs to the API contract. The report preserves the structural distinction without guessing the business action.

Types also matter. The string "3" differs from the number 3. Numerically equivalent source spellings such as 1.0 and 1 compare equal. Duplicate object keys are rejected before comparison because there is no unambiguous object to compare.

Use the report as a review aid

The downloadable result is a difference report, not a JSON Patch document. Do not send it directly to a PATCH endpoint. Use it to review a configuration change, investigate an API regression or check a conversion’s effects. Compare smaller sections if the report becomes too large to review usefully.

References: RFC 6901: JSON Pointer; RFC 8259: JSON data model. Example records are fictional.

Try the same steps

Open JSON Compare and load the example to get started.