JSON resembles JavaScript notation, but its portable grammar is deliberately smaller. Object names and strings use double quotes, numbers follow a finite decimal grammar, and only four whitespace characters are recognized outside tokens. Comments and trailing commas are convenient in some configuration languages, yet accepting them would mean parsing another language. JSONClear keeps the boundary visible: it validates strict JSON and reports the first location where the source cannot continue under that grammar.
Names and strings require double quotes
`{'name':'Ada'}` may be understandable to a JavaScript developer, but it is not JSON. Strict JSON is `{"name":"Ada"}`. An unquoted name such as `{name:"Ada"}` is also outside the grammar. JSONClear does not guess which quotes were intended or rewrite apostrophes inside natural-language text. It stops at the object-name position, so the author can correct the source deliberately and preserve the intended string content.
Comments and trailing commas are separate language features
After an object member or array item, strict JSON permits a comma only when another member or item follows. Therefore `{"a":1,}` and `[1,2,]` fail. `// note` and `/* note */` are not whitespace and also fail. Automatic repair could hide a truncated item or change a string that legitimately contains punctuation. JSONClear reports the boundary instead. If the source is JSON5 or a JavaScript module, use a tool whose contract names that language rather than relabeling it as JSON.
JSON numbers exclude JavaScript special values
JSON accepts finite decimal tokens such as `-0`, `12.50` and `1e-9`. It rejects `NaN`, `Infinity`, `0x10`, a leading plus sign and leading zeroes such as `01`. These forms either belong to JavaScript or create ambiguous portable behavior. JSONClear validates the token characters without converting them to Number. That combination keeps the grammar strict while also preventing valid long integers and decimals from being rewritten during formatting.