How to validate JSONL
Paste JSONL or NDJSON into JSON Lines input, or load a JSONL, NDJSON, or TXT file. The tool checks each nonblank line as one JSON value, keeps the records in line order, and separates valid output from parser issues. You can review the counts, copy the formatted valid records, or export the results.
- Paste text into JSON Lines input, or drop a file into Drop a JSONL or NDJSON file here and select browse files.
- Choose Output format, Output line endings, and Output encoding.
- Read Record summary and Invalid records when validation completes.
- Use Copy formatted output or Export formatted output for valid records. Use Export issues (CSV) for parser failures.
Validate NDJSON line by line
The parser splits input at LF, CRLF, and CR boundaries. A line containing only whitespace is counted as a blank line. Every other line goes through JSON.parse; a missing quote, brace, comma, or other syntax error marks that record invalid, and the following lines still get checked.
Record summary counts lines read, valid records, invalid records, blank lines, object records, array records, and scalar records. The Invalid records table gives each issue's line, column when available, parser message, and original content. The table displays up to 1,000 issues, with each original-content cell shortened to 200 characters. Export issues (CSV) includes every invalid record and its full raw value.
Format JSONL with compact or indented output
The tool serializes each valid parsed value again with JSON.stringify. Compact output removes spacing that JSON does not need:
Input: { "id": 1, "name": "Alice" }
Output: {"id":1,"name":"Alice"}
Compact (valid JSONL; one line per record) writes one serialized value per physical line. The review options, Indented - 2 spaces (review output), Indented - 4 spaces (review output), and Indented - tab (review output), spread each record across multiple lines and put a blank line between records. Set Output line endings to LF (Unix / Mac), CRLF (Windows), or CR (legacy Mac). Set Output encoding to UTF-8 or UTF-8 with BOM.
Parsed values and record order stay the same. Serialization changes whitespace and line breaks. Invalid records are left out of formatted output because they have no parsed value. The preview shows up to 500 valid records; the export contains the complete valid-record output.
What JSONL validation leaves unchanged
The tool reports malformed and blank lines. It does not repair JSON, trim values, deduplicate records, or remove invalid entries from the report. Each record stays part of a line-delimited stream; the tool does not wrap the records in one outer JSON array.
Where JSONL validation comes up
For a generated stream, paste records such as {"id": 1, "name": "Alice"} and {"id": 2, "name": "Bob"} into JSON Lines input. The summary identifies their object type, and compact output keeps one record on each line for the next program.
A TXT export can contain a blank line, an array such as [1, 2, 3], and a scalar such as "just a string". The summary counts those types separately. Lines that fail to parse appear in the issue table and in the CSV export.
Choose the right JSON validation tool
Use JSON Validate Tools to see related checks. Choose JSON Validator & Formatter for one JSON document with formatted content, a tree view, or a processed download. Choose JSON Schema Validator when a JSON Schema should be checked and violations need paths with line or column details.
Files are read with browser FileReader, values are parsed with JSON.parse, and downloads use browser Blob objects. This page's script has no fetch, XMLHttpRequest, sendBeacon, or form post that sends the input.
Frequently asked questions
How do I validate a JSONL file line by line?
Paste the content into JSON Lines input or load a file with browse files. The tool checks each nonblank line independently, then shows Record summary and any parser issues.
Does JSONL Validator & Formatter convert JSONL into a JSON array?
Each line remains an independent JSON value. The tool does not wrap the records in an outer array.
Why is one NDJSON line marked invalid?
JSON.parse could not parse the line's complete content as one JSON value. The Invalid records table gives the line, column when available, parser message, and shortened original content.
Can I format JSONL with 2 spaces or 4 spaces?
Select Indented - 2 spaces (review output) or Indented - 4 spaces (review output) under Output format. Those choices spread records across multiple lines. Compact output keeps one serialized value per line.