Corrupt a JSON File Online
Corrupt a .json file online for free. Breaks bracket structure and injects invalid UTF-8 so every JSON parser rejects the file.
- No upload
- No size limit
- No sign-up
Corrupt your JSON file
Tuned for .json, .jsonl, .geojson, and works with every other format too.
Why JSON files are hard to corrupt properly
JSON has no header and no index. It is validated purely by grammar. That makes it easy to break and hard to break convincingly: replacing characters at random often produces something a lenient parser still accepts, or something so obviously mangled it reads as a text edit rather than corruption.
What this tool destroys
- Structural characters. Braces, brackets, commas and quotes are overwritten, so the document can no longer be balanced.
- Invalid UTF-8. Byte sequences that are not valid UTF-8 are injected, which fails at the decoding stage before parsing even begins.
- The opening bytes. The start of the document is destroyed, so streaming parsers fail on the very first token.
- The tail. The closing bytes are replaced, leaving the document permanently unterminated.
What you will see afterwards
| Application | Behaviour |
|---|---|
JSON.parse() | Throws SyntaxError: Unexpected token immediately. |
Python json.load() | Raises JSONDecodeError or UnicodeDecodeError. |
| jq | "parse error: Invalid numeric literal" and a non-zero exit code. |
| Postman / API clients | Reject the body as malformed before sending. |
Common reasons people do this
- Testing that an API rejects a malformed request body with a clean 400 rather than a 500.
- Verifying a config loader fails fast instead of running with partial settings.
- Building malformed fixtures for a parser fuzzing corpus.
- Checking that a data import job reports the failing file rather than dropping records silently.
How to corrupt a JSON file
- Drop your .json file onto the box above, or click to browse.
- Leave the level on Standard unless you want partial damage (Light) or need to defeat recovery software (Heavy).
- Press Corrupt file. Processing happens on your device, so it finishes almost immediately.
- Download the result. It keeps the original filename and byte length by default.
JSON FAQ
Why not just delete a closing brace?
Because that is a hand edit, not corruption. It is trivially spotted and trivially fixed. Injecting invalid UTF-8 alongside structural damage makes the file fail at the byte level, the way a truncated transfer actually fails.
Will a lenient parser still read it?
No. At Standard level the file is not valid UTF-8, so even parsers that tolerate trailing commas or comments fail before they reach the grammar.
Does it work on JSON Lines and NDJSON?
Yes. Line-delimited formats use the same text profile, and the injected bytes break individual records as well as the file as a whole.
Can I get a file that is only slightly broken?
Yes. Light level touches roughly 0.5% of the payload, which usually produces a file that fails at one specific offset rather than everywhere.