JSON Compare
Compare JSON values and missing keys without rounding large numbers. Your input stays in your browser.
- Free, no sign-up
- Text stays in your browser
- Local processing / no upload
Limit: 500,000 character units per input. Oversized pastes are rejected. Drafts stay in this page and are not saved.
Step by step
How to use JSON Compare
Step 1: Paste the original strict JSON into First input and the second document into Second input. Remove duplicate keys before comparison.
Step 2: Decide whether object key order matters, then select Compare JSON. Arrays are compared by index and large number literals retain precision.
Step 3: Read JSON Pointer paths and before/after values. Copy or download the capped difference report; neither input is merged or overwritten.
Example to try
Load example with key-order comparison off. The report identifies changes at /id and /active. Moving name ahead of id does not count as a change in this mode.
Compare structured values rather than formatting
Paste two strict JSON documents to compare their structure. Whitespace and equivalent string escape notation do not create differences. Objects are matched by property name, with key order ignored by default. Enable Compare object key order when insertion order itself matters. Arrays remain ordered, so moving an element can create differences at multiple indices rather than a single semantic move operation.
Keep numeric comparisons precise
The comparison reads number literals directly from the JSON source and normalizes their decimal representation without converting them into floating-point values. Large integer IDs therefore remain distinct, while equivalent forms such as 1 and 1.0 compare equally. Duplicate object keys are rejected because their interpretation varies across consumers. Comments, trailing commas and malformed documents also produce an actionable error before comparison begins.
Output limits and local processing
Differences use JSON Pointer paths, escaping slashes and tildes in property names. The table and JSON report contain up to 1,000 differences; displayed before and after values are abbreviated to 500 characters. A notice identifies these limits. Nesting beyond 200 levels is rejected. The comparison does not validate JSON Schema, infer business equivalence or merge either document into the other.
Inputs and results are held only in this page's memory. Developer inputs accept up to 500,000 character units each. Oversized pastes are rejected while preserving the previous input. Generated output is limited to 5,000,000 character units. No sign-up is needed. Copy and download actions are explicit; the tool does not upload your drafts or save them for a later visit.