Developer Tools

JSON Compare (JSON Diff)

Compare two JSON documents by value, find added or removed fields, and review changes side by side without uploading your data.

How to use

  1. Paste the original and updated JSON, or open a UTF-8 file for each side.
  2. Keep array order for lists where position matters. Select Ignore array order when you want to compare membership instead.
  3. Choose Compare JSON, then select a difference to highlight it in both inputs. Filter changes or expand the workspace for more room.
  4. Copy or download the report if you need to keep the result. Editing either input clears the previous comparison.

Example

Input

Original: {"timeout":30,"active":true}. Updated: {"active":"true","timeout":45,"retries":3}.

Output

/timeout: value changed, 30 to 45. /active: type changed, boolean to string. /retries: added, 3.

See what changed in the data

A response can look different after reformatting while carrying exactly the same data. JSON Compare ignores indentation and object key order so those changes do not fill your report.

Each result names the affected JSON Pointer and labels the change as an addition, removal, changed value, or changed type. The original and updated values appear together.

Choose how to compare arrays

Arrays compare by index unless you select Ignore array order. An insertion near the start of an ordered list can therefore produce several changed positions.

Ignoring order matches whole values at every array level and still counts duplicates. An edited object becomes a removal and an addition; the tool does not match records by ID or detect moves.

Check API responses and configuration files

Put a staging response on the original side and a production response on the updated side to find configuration drift. The same workflow works for webhook examples and test fixtures.

Use the path search to narrow the report to a branch such as /settings. Change-type filters help you review removed fields separately when checking whether an API client will still work.

Strict input and exact number comparison

Both sides must be valid JSON with unique property names. Comments, trailing commas, and duplicate keys stop comparison. A missing field differs from null, and the number 1 differs from the string "1".

Decimal values compare without JavaScript rounding, so large IDs remain distinct. Equivalent spellings such as 1, 1.0, and 1e0 compare equal. Each input allows 200,000 characters, 20,000 values, and 100 nesting levels; reports stop at 1,000 changes or the report size limit and clearly say when incomplete.

Keep your inputs on your device

Pasted text and local files are processed in this tab. The tool does not upload or save either document. File loading accepts UTF-8 text up to 800 KB, subject to the same character and structure limits.

Reports include complete values for recorded changes, even when a long preview is shortened. Review them before sharing. Use JSON Formatter or JSON Validator to fix syntax, or Text Compare when source formatting itself matters.

FAQ

Does JSON key order matter?

Object key order and whitespace are always ignored. Array order matters unless you choose to ignore it.

Can I compare JSON files?

Yes. Use Open file above either editor to read a local UTF-8 JSON or text file up to 800 KB. The content must also fit the displayed input limits.

Is null the same as a missing field?

No. A property set to null exists. Removing that property is reported as a removal, even if its previous value was null.

Will large numbers lose precision?

The comparison uses the original number tokens and exact decimal values. It distinguishes 9007199254740992 from 9007199254740993 and treats 1.0 as equal to 1.

What do the paths mean?

Paths use JSON Pointer. /items/0/name points to name in the first array item. Inside a property name, ~1 means / and ~0 means ~. The root uses an empty pointer.

Does the report contain a JSON Patch?

No. It is a comparison report with paths and old/new values stored as JSON text to preserve precision. It is not an executable patch. Filters affect the display; exports contain every recorded change.

Articles

Privacy note

Your JSON is compared locally in your browser and is not uploaded or saved. Copied and downloaded reports contain changed values.

This tool runs in your browser. TOOLFINA does not require an account for public tools.