What is a JSON Linter?
A JSON linter checks more than just syntax. In addition to confirming your JSON is well-formed, it flags structural issues that are technically legal but usually unintentional — most importantly, duplicate keys within the same object, which JSON silently resolves by keeping only the last value and discarding the rest.
How to use this JSON linter
- Paste your JSON into the left-hand box.
- Click Lint JSON.
- Review the report — syntax errors, duplicate keys, and max nesting depth.
Frequently asked questions
How is a linter different from a validator?
A validator only checks whether the text is syntactically valid JSON. A linter goes further and flags issues that are syntactically legal but often unintentional — like the same key appearing twice in one object, where JSON silently keeps only the last value.
Why is a duplicate key a problem if JSON allows it?
The JSON spec doesn't forbid duplicate keys, but different parsers handle them inconsistently, and it's almost always a mistake — usually the result of merging objects or a copy-paste error. It silently discards data, which can cause confusing bugs.
What does 'max depth' tell me?
It's how many levels of nested objects/arrays your JSON has. Very deep nesting can be a sign of an overly complex data shape, and some parsers or downstream systems have depth limits that can cause failures.
