JSONL viewer & validator
Open or paste a JSONL file to pretty-print every record and validate it line by line. See valid and invalid counts, the exact error lines and the keys in your data, all in your browser.
Files are processed in your browser and never uploaded.
How to use JSONL viewer & validator
Add your file
Drop your JSONL, JSON or text file onto the upload area, or tap the area to choose it from your device.
Run it
Press Choose file. The button stays disabled until there is something to work on, and each file shows its own progress and result.
Start over any time
Nothing is saved on a server, so reloading the page clears everything.
What this tool does
Validates each line as separate JSON
JSONL is one JSON object per line, so each line is validated on its own and one bad record does not stop the rest being read.
Counts valid and invalid records
Valid and invalid records are counted, which tells you straight away whether you have a couple of bad lines or a broken file.
Lists exact line numbers and error messages
Every failure is listed with its line number and the parser's message, so you can go straight to the line that needs fixing.
Shows top-level keys and how often they appear
The top-level keys are listed with how often each appears, which is the quickest way to spot a field missing from half your records.
Open a file or paste, nothing uploaded
Open a .jsonl file or paste the text. Everything is parsed in your browser and nothing is uploaded.
Frequently asked questions
Is my file or data uploaded?
No. The file is read and validated entirely in your browser. Nothing you paste or open is sent anywhere or stored.
What does it check?
It reads each line as a separate JSON value, counts how many are valid, and lists the exact line numbers and error messages for any that are not, which is the usual cause of a fine-tuning or eval upload failing.
What are the top-level keys for?
For the valid records it shows which top-level keys appear and how often, so you can quickly spot records missing an expected field, such as a missing role or content key.
Can it handle large files?
It validates every line and shows the full counts, and to stay fast it displays the first 300 records in the expandable list while still reporting totals and all errors.
Why is one line flagged but it looks fine?
JSONL needs each line to be a complete JSON value on its own. A trailing comma, a missing brace or quote, or a record split across two lines will fail, and the error message points to what went wrong.
Last updated: