Scenario
Staging returns a new status field and production does not. A teammate says the response is "different," but a text diff mixes timestamp noise with the structural change you need to review.
Broken input
{
"id": "ord_812",
"status": "paid",
"updatedAt": "2026-07-14T09:00:00Z",
"items": [{ "sku": "book-01", "quantity": 2 }]
}
Goal
Keep the production response as a local baseline, compare the staging response, and separate ordinary values from fields, types, or array records that changed shape.
Tool sequence
- Open Toolzy JSON Compare and paste the production response into Source.
- Choose Capture baseline. The baseline stays separate from later Source edits.
- Replace Source with the staging response, then review added, removed, and changed entries.
- If
itemsreordered, choose an identity field only when every item has a unique stable key. - Continue to Toolzy JSON Plan if the structural change needs declared rollout intent rather than an ad hoc comparison.
Checkpoint output
added $.status undefined → "paid"
changed $.updatedAt timestamp value changed
identity $.items index comparison (no identity declared)
The timestamp is evidence of a value change. The added status field is the change that may affect a consumer.
Common mistakes
- Capturing the staging response as the baseline after replacing Source.
- Calling an array reorder a move without first choosing a complete, unique identity field.
- Treating every changed primitive value as a contract change.
- Putting either payload into a URL, ticket title, or analytics note.
Related tools and lessons
- Toolzy JSON Explore - Inspect a surprising path before comparing it.
- Toolzy JSON Plan - Record intent and compatibility assumptions.
- JSON Formatter - Make a dense sample readable first.
- Related lesson: Inspect an Unfamiliar JSON Response Before Changing It
- Related lesson: Find the Record Breaking a JSON Consumer
- Related lesson: Review Breaking JSON Contract Impact