JSON diff tool for Mac: compare API responses locally
When two payloads look almost the same, whitespace is noise. The useful question is which keys, values, arrays, and nested branches actually changed.
The short answer: use a local JSON diff when the payload came from an API response, support ticket, feature flag, config file, design-token export, or private test run. Compare objects or arrays locally, review added, removed, changed, and nested values, then paste only the small summary into the ticket or pull request.
TeenyTool includes JSON Diff in its Mac menu bar toolbox. It is meant for the manual review moment between "these two payloads changed" and "here is the exact difference worth discussing."
This page is not about formatting JSON. The related formatter guide is useful before the comparison. This guide is for deciding what changed between two valid JSON values.
Quick decision table
| Diff job | Use TeenyTool when | Use something else when |
|---|---|---|
| API response comparison | You copied two responses and need a fast local key/value review. | You need API replay, request signing, or collection management. |
| Design-token JSON | You need to spot changed token paths, removed aliases, or unrelated edits. | You need schema validation or generated output checks. |
| Config or feature flags | The payload includes internal names, customer context, or unreleased settings. | The config already lives in Git and code review shows the exact file diff. |
| Large automated diffs | The review is manual and small enough to inspect visually. | You need repeatable CI checks, scripts, or JSONPath assertions. |
01Start by validating both sides
A diff is only useful after both inputs parse. TeenyTool's JSON Diff validates each side with Apple's JSONSerialization. If either side is invalid, the app shows the parse error instead of pretending the diff is meaningful.
The tool expects each root value to be a JSON object or array. That keeps the comparison focused on practical payloads: API responses, config objects, token files, lists, and arrays of records.
If your first issue is broken syntax, use the offline JSON formatter for Mac first. Its Pretty mode sorts object keys, while Compact preserves their input order. Once both sides parse, return here to compare values rather than formatting differences.
02Review added, removed, and changed values first
The first useful pass is the small one. Which keys were added? Which keys disappeared? Which values changed? Which nested branch contains the change?
TeenyTool's source recursively compares dictionary keys in sorted order and marks each row as added, removed, changed, unchanged, or nested. The summary header counts added, removed, and changed items so the review starts with scope before details.
Leave unchanged rows hidden unless you need context. Most payload reviews get slower when every identical key stays on screen.
03Treat arrays as their own problem
Object diffs are mostly key comparisons. Arrays are different. Order, duplicates, inserted records, removed records, and changed records can all be present in the same payload.
TeenyTool uses a longest common subsequence pass for arrays. That helps pair unchanged or matching values before marking inserted, removed, and changed rows. It will not understand your domain model, but it gives a better manual starting point than a raw line diff.
For array-heavy API responses, check the fields that identify each record: ID, slug, timestamp, type, or name. A visual JSON diff can show movement. Your domain knowledge still decides whether the movement matters.
04Keep private payloads local
API responses often include real account IDs, emails, internal feature flags, addresses, tokens, unpublished copy, customer-specific settings, or values copied from an admin screen. Those do not belong in a random browser tab just because the task feels small.
The local rule is practical: if the JSON would not belong in a public issue, compare it on your Mac. Then paste the summary, not the payload, into the place where people need to make a decision.
The broader TeenyApps hub, Mac design token QA checklist for colors and JSON, uses the same rule for token files and handoff notes.
05Know what JSON Diff does not prove
A JSON diff proves a difference. It does not prove that the new payload is valid for your API, compatible with a client, safe for a migration, or correct for a design system.
Use schema validation when the contract matters. Use tests when behavior matters. Use source control when the file belongs in a repo. Use TeenyTool when a copied payload needs a fast local manual comparison before the next step.
If the JSON holds color tokens, pair the diff with the TeenyColor guide to using an sRGB color picker for Mac design tokens. The file diff tells you what changed. The sampled UI color tells you what actually rendered.
Ten-minute JSON diff pass
- Paste the old JSON on the left and the new JSON on the right.
- Fix parse errors before reviewing the diff.
- Confirm the roots are objects or arrays.
- Review added, removed, and changed counts.
- Open nested branches that changed.
- Turn on unchanged rows only when you need context.
- Check array changes against record IDs, slugs, names, or timestamps.
- Write a short summary with the important path and value changes.
Common questions
When should I use a JSON diff tool on Mac?
Use a local JSON diff when you need to compare API responses, token files, feature flags, config changes, or copied payloads that should not be uploaded to a web tool.
Can TeenyTool compare JSON arrays?
Yes. TeenyTool's JSON Diff works with object or array roots and includes array matching logic so added, removed, and changed array values are easier to review.
Is a JSON diff the same as schema validation?
No. A JSON diff shows what changed. Schema validation proves whether the result follows a specific contract. Use both when an API or token file has strict rules.
Sources checked
- TeenyTool feature claims were checked against the local homepage and source files for the tool catalog, JSON Diff, JSON Formatter, favorites, shortcuts, JSON parsing, dictionary diffing, array matching, and unchanged-row filtering.
- Apple JSONSerialization documentation for JSON parsing behavior.
- RFC 8259 for the JSON data interchange format.
Compare JSON without uploading it.
teenytool is a $14.99 Mac menu bar toolbox with JSON Formatter, JSON Diff, JWT Decoder, Base64, YAML, CSV, image tools, color tools, PDF tools, and more.