Convert JSON string
to JSON object.
Auto-detect depth.
Paste an escaped JSON string, a double-encoded JSON value or a JSON string wrapped in quotes. The converter unescapes, parses and pretty-prints the result automatically — no setup needed.
"{\"name\":\"Alice\"}",
a double-encoded value, or a raw JSON string without outer quotes.
Understanding the three types of input this tool handles.
// Input — a string with backslash escapes:
"{\"id\":1,\"name\":\"Alice\"}"
// Output — parsed JSON object:
{
"id": 1,
"name": "Alice"
}
// Input — JSON.stringify called twice:
"\"{\\\"id\\\":1,\\\"name\\\":\\\"Alice\\\"}\""
// Output — fully unwrapped object:
{
"id": 1,
"name": "Alice"
}
// Input — a field whose value is a JSON string:
{"data": "{\"id\":1,\"name\":\"Alice\"}"}
// Output with inner strings parsed:
{
"data": {"id": 1, "name": "Alice"}
}
// Input — unicode escape sequences:
{"name":"\u0041\u006C\u0069\u0063\u0065"}
// Output — decoded characters:
{
"name": "Alice"
}
The most common causes of escaped or double-encoded JSON.
The most common cause. A developer calls JSON.stringify() on a value that is already a JSON string — producing a string representation of a string. Common in Express.js when res.json() is called with an already-serialised string.
When JSON is stored in a database column typed as TEXT or VARCHAR (rather than JSON/JSONB), reading it back produces a string. If the application then serialises that string again when building the API response, the JSON ends up double-encoded.
Kafka, AWS SQS and Azure Service Bus messages are strings. When a JSON payload is placed into a queue and then embedded in another JSON envelope for the API response, the inner payload becomes a double-encoded JSON string.
Some older APIs and webhook payloads return JSON serialised as a string value within a wrapper object — e.g. {"payload": "{...}"}. This was a common pattern before JSON became ubiquitous as a native type.
Unescaped in
your browser. No upload.
The entire parsing runs in JavaScript locally using the browser's native JSON.parse() — the fastest and most standards-compliant JSON parser available. Your data is never transmitted to any server.
Auto-detect mode tries up to 5 unwrap passes — stopping as soon as the result is a non-string JSON value. This handles single-encoded, double-encoded and triple-encoded strings without any configuration.
