Remove Escape Characters From a JSON String — Online, Free
- Paste an escaped JSON string and get back the readable original — no manual cleanup.
- Handles double quotes, backslashes, newlines, tabs, and unicode escapes.
- Useful for log lines, database columns, and double-stringified JSON.
Table of Contents
Logs, database columns, and over-eager API wrappers love to store JSON as an escaped string. The result is unreadable — every quote is preceded by a backslash, sometimes multiple backslashes deep. Stripping those escape characters by hand is tedious and error-prone. Paste the string into our tool instead and get back clean, readable JSON in one click.
Why Your JSON Is Full of Backslashes
If you're staring at JSON that looks like "{\"id\":1,\"name\":\"Alex\"}", what you're seeing is JSON that's been wrapped as a string and escaped. Common causes:
- Logging frameworks that JSON-encode entire log entries — including any structured data — turning embedded JSON into escaped strings.
- Database columns typed as VARCHAR or TEXT instead of JSON. The application stringifies before insert; pulling the column shows the escaped form.
- Webhook envelopes that wrap your payload in a string field for compatibility with systems that don't speak nested JSON.
- Double
JSON.stringifybugs where a string was already JSON and someone called stringify again. - Copy-paste from a code editor that auto-escaped what you copied.
All of these produce the same symptom — backslashes everywhere — and the same fix: unescape until the JSON is readable.
How the Tool Strips Escape Characters
Switch to the Unescape tab. Paste your escaped string. The tool parses it as a JSON string, gets back the unescaped value, then pretty-prints if the result is itself valid JSON.
Input:
"{\"id\":1,\"name\":\"Alex\",\"roles\":[\"admin\",\"editor\"]}"
Output:
{
"id": 1,
"name": "Alex",
"roles": ["admin", "editor"]
}
If the result isn't valid JSON (you unescaped a string that wasn't JSON to begin with), the tool still strips the escapes and shows you the plain unescaped text.
Sell Custom Apparel — We Handle Printing & Free ShippingWhen You Need to Unescape Multiple Times
Heavily wrapped JSON gets escaped at every layer. If a payload has been stringified twice, you'll see double-escaped quotes:
"{\\\"id\\\":1}"
Run unescape once and you get:
"{\"id\":1}"
Run it a second time and you finally get:
{"id":1}
Each pass strips one layer. Three layers of escaping (rare, but happens with deeply nested webhook chains) needs three passes. The tool's fast enough that running it three times in a row is no slower than a coffee sip.
When You Should NOT Strip Escape Characters
Unescaping is the right move when the escapes are an artifact — a wrapper that's no longer needed. It's the wrong move in two cases.
The escapes are part of the data. A string field whose actual value contains a backslash (Windows file paths, regex patterns) needs to keep its escapes. Unescaping "C:\\Users\\Alex" gives you "C:\Users\Alex", which is the original — but if you then re-escape for storage, you go back to the double-backslash form. Don't loop.
The data needs to round-trip. If you're going to send the JSON back somewhere that expects the escaped form, unescape only for reading, not for storage. Saving the unescaped version means re-escaping on the way out.
For pure debugging — "I need to read this" — strip away. For data manipulation, think about what the consumer expects before you commit changes.
Strip Those Backslashes
Paste your escaped JSON, get readable JSON back. Free, no signup.
Open Free JSON Escape / Unescape ToolFrequently Asked Questions
My input has \\\" instead of \". Why?
That is double-escaped. The string was stringified twice. Run the unescape twice — once per nesting level.
Will this break Windows paths inside the string?
It will unescape \\ to \. If the original data really had a backslash (Windows path, regex), keep the escaped form for storage.
Does this handle unicode escapes like \u00e9?
Yes. \u escapes are converted back to their actual characters during unescape.
What about the \b, \f, \n, \r, \t escapes?
All converted back to the actual control characters they represent (backspace, form feed, newline, carriage return, tab).

