JSON Escape / Unescape (JSON Stringify)
Escape text into a JSON string, unescape a JSON string literal, stringify a JSON document into an embeddable string, or decode double-encoded JSON.
Putting text inside JSON means escaping quotes, backslashes and line breaks; pulling it out means undoing that. This tool does both, and also handles the two cases that cause most confusion: turning a whole JSON document into a single escaped string (to embed it in another JSON field, an environment variable or a test fixture), and decoding JSON that was stringified once or several times, as logs and message queues often deliver it.
How to use this tool
- Choose a mode: escape, unescape, stringify or unstringify.
- Paste the text or JSON.
- For escaping, decide whether to keep the surrounding quotes, escape non-ASCII characters as \uXXXX and escape / for safe use inside a <script> tag.
- Copy the result.
Formula
" → \" \ → \\ line feed → \n tab → \t other control characters → \u00XX
This follows RFC 8259 §7, the same rules JSON.stringify uses: only the quote, the backslash and characters below U+0020 must be escaped. Everything else, including Korean, emoji and /, may appear as is; the options escape non-ASCII characters (characters above U+FFFF as surrogate pairs such as \ud83d\ude00) and / for ASCII-only or HTML-embedded output. Unescaping uses a strict parser and reports invalid escapes such as \x with their position.
Example
The sample text — He said "hi" to C:\Users\Ada, a line break, a tab and some Hangul — becomes "He said \"hi\" to C:\\Users\\Ada\nTab:\there · 한글 ✓": each quote and backslash gets a backslash, the line break becomes \n and the tab \t. Stringifying {"a": [1, 2]} gives "{\"a\":[1,2]}", which unstringifies back in one layer.
Frequently asked questions
What is the difference between escape and stringify?
Escape treats the input as plain text. Stringify first checks that the input is valid JSON, minifies it, and then escapes it, so the result is a string that decodes back to the same document.
Why do I see \" and \\ everywhere in my logs?
The JSON was encoded as a string, sometimes more than once. Unstringify peels off every layer and shows the JSON inside, counting the layers.
Do I have to escape / or non-ASCII characters?
No — JSON allows both as they are. Escape / when the JSON goes inside an HTML <script> element (so </script> cannot end it early), and use \uXXXX when a system only accepts ASCII.
Is my data uploaded?
No. Everything runs in your browser.
Sources
Last updated:
Page address with these inputs: https://kakao.mobile/tools/json-escape-unescape-tool/
Cite or embed this tool
kakaoCalc. (2026, November 8). JSON Escape / Unescape (JSON Stringify). https://kakao.mobile/tools/json-escape-unescape-tool/
“JSON Escape / Unescape (JSON Stringify).” kakaoCalc, 8 Nov. 2026, kakao.mobile/tools/json-escape-unescape-tool/.
Paste this code into your page. The widget runs in your visitors' browsers, shows no ads and keeps a link back to this page. Embedding terms