TDS · Browse all tools
JSON validator, formatter & comparison
Validate JSON, format it without rounding large numbers, and compare two versions by field path. Export formatted JSON or a change report.
Scope and limits
UTF-8 JSON only, up to 512 KiB per input, 60 nesting levels, 20,000 values and 1,000 differences. Duplicate keys are rejected. Numeric exponents are limited to ±100,000. No JSON5, comments, schema validation or executable code.
How this tool works
Object key order and whitespace do not count as changes. Arrays are compared by index, so an insertion may produce several changes. Number tokens remain exact; equivalent decimal values such as 1 and 1.0 compare equal. Paths use JSON Pointer escaping.
A reproducible example
Change enabled from false to true and add a third region. Reordering the object keys leaves the large numeric ID untouched.
{"id":9007199254740993,"enabled":false,"regions":["EU","US"]}{"regions":["EU","US","APAC"],"enabled":true,"id":9007199254740993}[
{
"path": "/enabled",
"kind": "changed",
"before": "false",
"after": "true"
},
{
"path": "/regions/2",
"kind": "added",
"before": null,
"after": "\"APAC\""
}
]Format and method references
Common questions
Will a long numeric ID be rounded?
No. The formatter preserves number tokens and comparison normalizes decimal strings without converting them to JavaScript floating-point numbers.
What happens to duplicate JSON keys?
This tool rejects them and reports the location. It does not silently discard an earlier value. Object order is ignored during comparison, but array order matters.
All tools
Link to this tool from your website
Select and copy this HTML into a relevant resource page or README. It links to an empty workspace; no files or results are shared. Attribution is optional.