JSON Unescape
Convert escaped JSON strings back to readable JSON format. Handles multiple levels of escaping from APIs, databases, logs, and webhooks with automatic detection and formatting.
Unescape Options
Recursive handles multiple escape levels
Output formatting
Waiting for input...
Recommended Settings
Understanding JSON Escaping
- •JSON strings use backslash (\) to escape special characters like quotes
- •Multiple serializations create multiple escape levels: \" becomes \\\"
- •Common escape sequences: \n (newline), \t (tab), \" (quote), \\ (backslash)
- •Unicode escapes: \uXXXX for special characters (e.g., \u2764 = ❤)
- •APIs, databases, and logs often double or triple-escape JSON data
When to Use Each Mode
- •Unescape Once: Single-level escaped strings from simple API responses
- •Unescape Recursively: Multi-level escaping from chained systems or logs
- •Recursive mode auto-detects levels - safe to use for both cases
- •Maximum 10 levels prevents infinite loops on malformed data
- •If unsure, start with recursive mode - it handles single level too
Pro Tips
- •Recursive mode is recommended for most use cases - it auto-detects escape levels
- •Copy-pasted JSON from browser DevTools often needs 1-2 levels of unescaping
- •Database VARCHAR/TEXT fields frequently return escaped JSON that needs processing
- •All unescaping happens client-side - your data never leaves your browser
Most Popular
Recursive mode with 2-space indent for maximum compatibility
When to Use This Tool
Backend APIs sometimes return JSON as escaped strings within JSON responses. Common in microservices where Service A wraps Service B's response. Unescape to extract the actual data structure for use in your application.
SQL databases storing JSON as VARCHAR or TEXT return escaped strings when queried. MySQL, PostgreSQL, and legacy systems often escape quotes and special characters. Unescape to convert database strings back to proper JSON objects.
Application logs containing JSON get escaped by logging systems (Splunk, ELK, CloudWatch). Multi-service architectures create multiple escape levels. Unescape log entries to analyze actual request/response data or error details.
Third-party webhooks from Stripe, GitHub, Slack often include escaped JSON in payload fields. Test environments may double-escape data. Unescape webhook payloads to inspect actual event data and test integration logic.
Chrome/Firefox DevTools show escaped representations of JSON strings. Copy-pasting from Network tab or Console requires unescaping. Use this tool to convert browser-copied JSON into proper format for testing or documentation.
RabbitMQ, Kafka, SQS messages containing JSON may be escaped when retrieved. Event-driven systems passing JSON through multiple queues create escape layers. Unescape messages to process actual event data in consumers.
How It Works
Paste your escaped JSON string into the input field
Choose unescape mode: once for single level, recursive for multiple levels
Tool attempts to parse JSON using JSON.parse()
In recursive mode, continues parsing until reaching final object/array
Detects and displays number of escape levels found
Formats output with selected indentation (2 or 4 spaces)
Handles all standard escapes: \", \\, \n, \t, \uXXXX
Copy result to clipboard or download as .json file
100% Private
Files never leave your device. All processing happens locally in your browser.
Lightning Fast
Powered by Pure JavaScript for optimal performance on modern browsers.
Secure
No data collection, no tracking, no sign-up required.
Frequently Asked Questions
What's the difference between 'once' and 'recursive' mode?
'Unescape Once' parses the JSON string a single time - use when you have one level of escaping. 'Unescape Recursively' continues parsing until it reaches the final object/array - use for multi-level escaped JSON from systems that serialize multiple times. Recursive mode is safer as default since it handles both cases.
Why does my JSON have multiple escape levels?
Multiple escape levels occur when JSON is serialized multiple times through different systems. Example: Service A serializes → Service B wraps in another JSON → Logging system serializes for storage. Each step adds an escape level. APIs, message queues, and logging systems commonly create 2-3 levels.
What does 'X levels detected' mean?
This shows how many times the tool parsed your input with JSON.parse(). Level 1 = single-escaped, Level 2 = double-escaped (JSON inside JSON string), Level 3+ = multiple serializations. The tool stops when it reaches an object/array or hits the maximum of 10 levels.
Why am I getting a parse error?
Parse errors occur when: (1) Input isn't valid escaped JSON, (2) JSON is already unescaped, (3) Escape sequences are malformed (\x instead of \u), (4) Missing quotes around the string, (5) Unbalanced brackets/braces. Check that your input is a quoted JSON string with proper escape characters.
How do I know if my JSON needs unescaping?
Your JSON needs unescaping if you see: (1) Backslash-quote pairs (\" instead of "), (2) Double backslashes (\\ instead of \), (3) Escaped newlines (\n visible as text), (4) Entire JSON wrapped in quotes as a string. If you copy from browser DevTools network tab, it usually needs unescaping.
Can this tool escape JSON too?
No, this tool only unescapes. For the reverse operation (converting JSON to escaped string), use the JSON Escape tool or JSON Formatter. This tool is specifically designed to convert escaped JSON strings back to readable format for debugging and analysis.
What happens to Unicode escapes like \u2764?
Unicode escapes (\uXXXX) are automatically converted to their actual characters by JSON.parse(). For example: \u2764 becomes ❤, \uD83D\uDE00 becomes 😀. The tool handles both Basic Multilingual Plane characters and emoji surrogate pairs correctly.
Is my data secure during unescaping?
Absolutely! All unescaping happens entirely in your browser using JavaScript's native JSON.parse(). Your data never leaves your computer or gets sent to any server. The tool works completely offline after the page loads. No data is stored, logged, or transmitted.