Home › NDJSON Salvage
NDJSON / JSONL Salvage — recover the records, quarantine the wreckage
Direct answer: most "viewers" for line-delimited JSON just flag the bad lines and leave you to fix a ten-thousand-line file by hand. This tool salvages it: valid lines pass through byte-for-byte, repairable lines are repaired with the rules listed, and unrecoverable lines are quarantined with their original line numbers and the reason — so nothing is ever dropped silently.
NDJSON / JSONL Salvage
Each line is handled independently: valid lines pass through untouched, broken lines are repaired, hopeless lines are quarantined with their original line numbers. Processed locally in your browser — nothing is uploaded.
Line by line
| Line | Status | Rules applied / reason | Content |
|---|
How salvage works
- Paste the lines, or drop the .ndjson / .jsonl / .log file onto the panel.
- Press Salvage lines. Each line is parsed on its own: valid → untouched, broken → repaired, hopeless → quarantined.
- Check the per-line table: status, rules applied, or the failure reason.
- Download recovered.ndjson (valid + repaired, original order) and, if any, the quarantine file.
The line independence is the point. In a normal JSON document one syntax error poisons everything; in NDJSON each line is its own document, so the damage is contained to the lines that are actually broken. The repair step uses the same deterministic rules — and the same honesty rules — as JSON Repair: a line whose value is simply absent is quarantined, not filled in with a guess.
Dropped a pretty-printed JSON document instead of lines? The tool detects that and points you to JSON Repair with a one-click transfer. Mixed content is fine too: a .log file whose lines are JSON among other text will salvage the JSON lines and quarantine the rest with their line numbers.
Frequently asked questions
What is the difference between NDJSON and JSONL?
Almost nothing in practice: both mean one complete JSON value per line, lines separated by newlines. NDJSON is the older name (with a spec and the .ndjson extension); JSONL (JSON Lines, .jsonl) is the name used by most logging and ML tooling today. This tool treats them identically. See the guide on this page's topic for the full picture.
What happens to a line that cannot be repaired?
It is quarantined, not deleted: the quarantine download contains the original line text, its original 1-based line number, and the reason it failed. Line numbers stay stable end-to-end — empty lines are counted separately and never shift the numbering.
Does salvage ever merge or reorder lines?
Never. Lines are processed independently and the recovered file keeps the original order. One corrupt line cannot damage its neighbours, and duplicates are preserved — salvage is recovery, not deduplication.
How big a file can it handle?
Processing runs in your browser, in chunks of lines, with a progress bar. Very large exports (hundreds of thousands of lines) are routine; the practical ceiling is your device's memory, not a plan limit.