JSON lint
Lint a JSON document (or paste it in) and download a structured report.
Working…
Questions people ask
- What does the tool report?
- A structured JSON report with each finding in one of three classes: error (the document is not valid strict JSON: a syntax error with line and column, an invalid-UTF-8 byte run, non-standard NaN/Infinity tokens, or nesting that goes past the tool's internal 512-level cap), warning (a duplicate key at any depth, a top-level scalar rather than a container, a UTF-8 BOM), and info (structural context: total bytes, line count, top-level type). The report is always downloadable, whether or not the document passed.
- How is this different from a JSON *validation* tool?
- JSON validation means "is this document syntactically valid?" JSON lint goes further: it looks at the document the way a reviewer would (where is the error, on which line, what did I do wrong?) and surfaces the foot-guns that a parser would not flag (duplicate keys, a BOM at the start of the file, a top-level value that is not what you expected).
- What is a duplicate key?
- The JSON RFC does not say whether the first or last occurrence of a key wins; in practice most parsers use last-wins, so a document with two "a" keys in the same object silently drops the first value. This tool flags every duplicate with the offending key and its count.
- Why does it refuse to parse a 5 MB document?
- This tool is not a streaming validator. Anything past the 4 MiB cap is a job of a different shape; the tool will not pretend to process it and fail halfway, but will tell you it did not attempt to. The 512-level nesting cap is the same story: a "deep enough to overflow the parser's stack" document is a hostile shape, and the tool refuses it with a stable, deterministic error rather than crashing.
- Does anything leave my server?
- No. The processor runs in an isolated container with no network access and no external dependencies: it is a stdlib `json` invocation plus a small pre-scan for nesting depth. The report is generated locally and stays in your download window for 10 minutes; the upload is deleted the moment the job completes.