JSONL Formatter & Validator
Paste or upload a .jsonl / .ndjson file to validate every line, see exactly which lines are broken and why, pretty-print or normalize the records, and preview them as a table. Runs 100% in your browser — nothing is uploaded.
JSONL input
Normalized JSONL
Table preview
First
records
| Line | id | ts | level | event | user | tags | amount | attempt |
|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 2026-11-02T09:14:03Z | info | user.signup | {"id":"u_1042","plan":"free"} | ["web","eu"] | ||
| 2 | 2 | 2026-11-02T09:15:47Z | info | user.upgrade | {"id":"u_1042","plan":"pro"} | 12.5 | ||
| 4 | 3 | 2026-11-02T09:16:10Z | warn | payment.retry | {"id":"u_2210","plan":"team"} | 2 | ||
| 6 | 5 | 2026-11-02T09:21:31Z | info | user.login | {"id":"u_0007","plan":"free"} | ["ios"] |
Showing 4 of 4 valid records.
Need a different shape? Convert with the JSON array ⇄ JSONL converter or the CSV ⇄ JSONL converter; for a single JSON document use the JSON formatter.
How to validate a JSONL file
- Paste your JSON Lines or click Upload to open a
.jsonl/.ndjsonfile. - Check the badges: every non-blank line must be one complete JSON value.
- Fix the lines listed under invalid lines — each entry shows the line number and the parser error.
- Copy or download the normalized JSONL (one minified record per line, blank lines removed).
What is JSONL (JSON Lines / NDJSON)?
JSON Lines — also called NDJSON (newline-delimited JSON) — is a text format where every line is one complete, self-contained JSON value, usually an object. There are no commas between records and no surrounding [ ]. Files typically use the .jsonl or .ndjson extension.
{"id": 1, "event": "signup", "plan": "free"}
{"id": 2, "event": "upgrade", "plan": "pro"}JSONL vs a JSON array
A JSON array must be parsed as a whole, so a single missing bracket breaks the entire file. JSONL can be streamed, appended to, split and processed line by line (head, grep, wc -l), and a corrupt line only affects that one record. Use a JSON array for small API payloads and config; use JSONL for large datasets, logs and anything written incrementally.
Where JSONL is used
- OpenAI fine-tuning datasets and Batch API input/output files (one request or example per line).
- BigQuery, Snowflake, Redshift and Athena bulk loads (
NEWLINE_DELIMITED_JSON). - Structured logs from Docker, Kubernetes, Bunyan, Pino and most log shippers.
- Elasticsearch / OpenSearch bulk API, MongoDB
mongoexport, Hugging Face datasets. - Data pipelines with
jq -c, Spark, pandasread_json(lines=True)and DuckDB.
All JSONL tools on DevToolsDaily run 100% in your browser — your data is never uploaded. See also the JSONL formatter, JSON ⇄ JSONL converter and CSV ⇄ JSONL converter.