WebToolsPlanet
Developer Tools

Unstringify JSON

Paste a JSON string literal — a quoted, escaped string containing JSON — and decode it back to the original pretty-printed JSON structure. Works with both single and double-stringified JSON.

Last updated: May 28, 2026

Client-Side Processing
Input Data Stays on Device
Instant Local Execution

Find this tool useful? Support the project to keep it free!

Buy me a coffee

What is Unstringify JSON?

"Unstringify JSON" reverses the process of double-encoding JSON as a string. When a JSON object is serialized with JSON.stringify, then passed to JSON.stringify a second time, the result is a JSON string literal where the inner JSON has all its quotes escaped. This is sometimes called "double-stringified" JSON.

Unstringify JSON calls JSON.parse on the input. If the result is a string (meaning the input was double-stringified), it calls JSON.parse again on that string, then formats the result with indentation. If the first parse result is already an object or array, it formats it directly.

This tool is the reverse of the JSONify String and JSON to String Converter tools.

How to Use Unstringify JSON

1

Paste a JSON string literal into the input area or click "Load Sample"

2

The decoded, formatted JSON appears instantly on the right

3

Copy or download the result

Common Use Cases

  • Debugging API responses where a JSON body has been double-serialized as a string.
  • Recovering a JSON document from a database field that stored it as an escaped string.
  • Decoding JSON that was passed through a shell script or environment variable.
  • Reversing JSON.stringify(JSON.stringify(obj)) in test fixtures.
  • Quickly viewing the structure of a JSON value that appears as a quoted string in a log.

Example Input and Output

A double-stringified JSON string is decoded back to the original formatted JSON object.

JSON string literal input
"{"name":"Alice","age":30,"active":true}"
Decoded JSON output
{
  "name": "Alice",
  "age": 30,
  "active": true
}

Privacy

All processing runs in your browser. No data is uploaded to any server.

Frequently Asked Questions

What is double-stringified JSON?
Double-stringified JSON is a JSON document that has been serialized with JSON.stringify twice. The result is a JSON string literal containing an escaped JSON string. For example: calling JSON.stringify(JSON.stringify({a:1})) produces the string "\"{\\"a\\":1}\"". Unstringify JSON reverses this.
What if the input is just a normal JSON string?
If the input is a quoted JSON string like "Hello World", the tool will parse it and output the raw text: Hello World.
What if the input is a regular (non-string) JSON value?
If the input parses to an object, array, number, or boolean directly, the tool simply pretty-prints the result with 2-space indentation.
Is my data sent to a server?
No. All decoding happens in your browser using JSON.parse. Your data never leaves your device.
How do I go the other direction — string-encode JSON?
Use the JSON to String Converter or the JSONify String tool to encode a JSON value or plain string as an escaped JSON string literal.