How to repair malformed and broken json automatically
- Step 1Paste the broken JSON — Copy the malformed JSON from wherever it appears — an error log, a text file, a database record, or a JavaScript source file. Paste it into the format fixer.
- Step 2Run the fixer — Click Fix. The tool reports what corrections were made: 'Removed 3 trailing commas', 'Quoted 2 unquoted keys', 'Replaced 5 single-quoted strings'. Review the corrections.
- Step 3Validate the fixed output — The fixed JSON is automatically validated after correction. If the JSON is still invalid (due to more complex corruption), the validator highlights the remaining errors.
- Step 4Handle complex corruption — For severely corrupted JSON — mismatched brackets, binary data corruption, truncated records — the fixer may not fully repair the file. Use the validator error messages to identify the remaining issues and fix them manually.
Frequently asked questions
Why does trailing comma make JSON invalid when JavaScript allows it?+
JSON is a strict subset of JavaScript — it was designed to be a minimal data interchange format. The JSON specification (RFC 8259) does not allow trailing commas. JavaScript objects and arrays do allow trailing commas as of ES2017, but many older parsers and all strict JSON parsers reject them. JSON5 is an extended format that allows trailing commas, but standard JSON does not.
What is the difference between JSON and JSON5?+
JSON5 is an unofficial extension of JSON that allows trailing commas, single-quoted strings, unquoted keys, comments, and multi-line strings. JSON5 is useful for human-edited config files but is not interoperable with standard JSON parsers. The json5 npm package provides a JSON5 parser. Use this tool to convert JSON5-like files to standard JSON for use with standard JSON.parse().
Is the broken JSON transmitted to JAD Apps?+
No. Format fixing runs entirely in your browser. Malformed JSON data is never transmitted to JAD Apps servers.
Privacy first
Conversion runs locally in your browser. No file is uploaded — only metadata counters are saved for signed-in dashboard stats.