LLM JSON Repair — Fix Broken Model Output Online
Skip to main content

LLM JSON Repair

Paste broken JSON from any LLM. The repair pass strips fences, comments, smart quotes, trailing commas, and Python literals — then re-parses to confirm it's valid.

Repaired JSON

About LLM JSON Repair

LLMs frequently emit JSON that is almost valid but fails JSON.parse — wrapped in markdown fences, sprinkled with comments, using Python literals, or missing quotes on keys. This tool runs a deterministic repair pipeline and re-validates the result, showing exactly which fixes were applied and how many times.

What this tool does

10-step repair pipeline

Fences → BOM → smart quotes → comments → Python literals → single quotes → unquoted keys → trailing commas → control chars. Applied in order, each step is idempotent.

Fix report

Every repair is counted and labelled so you can see what the model got wrong — useful for prompt engineering and debugging structured-output prompts.

Re-validation

After repair the output is passed through JSON.parse. If it still fails, the parser error is shown so you know exactly where the remaining problem is.

Pretty-printed output

Valid output is re-serialized with 2-space indentation for readability before display.

Pipeline

Frequently asked

Why do LLMs produce broken JSON?
Language models generate text token by token without a strict grammar constraint. They frequently wrap output in markdown code fences, add JavaScript-style comments to explain fields, use single quotes instead of double quotes, leave trailing commas, or emit Python literals like True/False/None. None of these are valid JSON, but they are common in training data.
What repairs does this tool apply?
In order: strip markdown code fences (```json ... ```), remove JSONP wrappers, strip UTF-8 BOM, normalize smart/curly quotes to straight quotes, remove // line comments and /* */ block comments, replace Python True/False/None with true/false/null, convert single-quoted strings to double-quoted, quote unquoted object keys, remove trailing commas before } or ], and escape literal newlines/tabs inside strings.
Does it handle deeply nested or large JSON?
Yes — the repair pass is a single linear scan over the text, so it scales to large payloads without performance issues. The only limit is your browser's memory. For very large outputs (>10 MB) consider splitting the payload first.
What if the JSON is still invalid after repair?
The tool reports the JSON.parse error message so you can see exactly where the remaining problem is. Common unrecoverable cases: truncated output (the model hit a token limit mid-object), deeply nested unclosed brackets, or binary data embedded in a string. In those cases you'll need to manually fix the remaining issue.
Is my data sent anywhere?
No. All repair logic runs in your browser. Your model output never leaves your device.