If you've ever seen a string like this:
"{"name": "John", "age": 30}"
… and wondered how to convert it back into usable JSON, you're not alone. That’s where JSON unescape comes into play.
In this blog, we’ll explore what it means to unescape JSON, why escaping happens, and how to handle it in various programming languages.
What is JSON Unescaping?
JSON unescaping is the process of converting escaped characters in a JSON string back into their original, readable form.
For example:
Escaped JSON string:
"{"message": "Hello, world!"}"
Unescaped output:
{
"message": "Hello, world!"
}
Escaping is often necessary when a JSON string is embedded within another string (like when JSON is passed inside HTML, logs, or another JSON object). But to work with it programmatically, you’ll often need to unescape it first.
Why JSON Gets Escaped
There are several reasons you might encounter escaped JSON:
- Nested JSON structures – JSON within JSON (like API responses or logs).
- Embedding JSON in strings – For transport or storage.
- Security and encoding – Preventing code injection in web applications.
- Serialization – Storing JSON in databases or config files may require escaping.
Common Escaped Characters in JSON
Here are some of the most common escape sequences you’ll see in JSON strings:
Escaped | Meaning |
" | Double quote |
\ | Backslash |
n | New line |
t | Tab |
/ | Forward slash |
b | Backspace |
f | Form feed |
r | Carriage return |
When you "unescape" a JSON string, you’re converting these back to their original characters so the data can be properly parsed and used.
How to Unescape JSON in Different Languages
1. JavaScript
const escaped = "{"name": "Alice"}";
const unescaped = JSON.parse(escaped);
console.log(unescaped); // { name: 'Alice' }
2. Python
import json
escaped = "{"name": "Alice"}"
unescaped = json.loads(escaped)
print(unescaped) # {'name': 'Alice'}
If the string is double-escaped (i.e., escaped twice), you may need to apply json.loads() twice:
escaped_twice = ""{\"name\": \"Alice\"}""
unescaped = json.loads(json.loads(escaped_twice))
3. Java
import org.json.JSONObject;
String escaped = "{"name": "Alice"}";
JSONObject obj = new JSONObject(escaped);
System.out.println(obj.getString("name")); // Alice
4. Node.js (with JSON.parse)
let escaped = "{"city": "New York"}";
let data = JSON.parse(escaped);
console.log(data); // { city: 'New York' }
5. PHP
$escaped = "{"name": "Alice"}";
$unescaped = json_decode($escaped, true);
print_r($unescaped);
Handling Double-Escaped JSON
Sometimes, especially when receiving data from APIs or logs, JSON strings may be escaped more than once. In such cases, you need to "peel back" the layers with multiple parsing calls.
Example in Python:
raw = ""{\"name\": \"Bob\"}""
parsed = json.loads(json.loads(raw))
print(parsed) # {'name': 'Bob'}
Always inspect your input to determine the correct number of parses.
Tools for JSON Unescaping
If you want to quickly unescape JSON without writing code, there are several free online tools:
These tools let you paste an escaped string and see the properly formatted JSON instantly.
Conclusion
Escaped JSON strings are common when working with nested data, logs, or certain APIs. Understanding how to json unescape them is crucial for properly parsing and utilizing your data. Whether you’re working in Python, JavaScript, Java, or another language, there's a simple method to decode these strings and get your data back in usable form.
Always remember: if your JSON looks unreadable with a ton of backslashes and quotes, it probably just needs a good unescaping!