Plain text vs JSON text
JSON text already follows JSON syntax: braces or brackets, double-quoted keys and double-quoted string values. Plain text such as name: Ana, age: 30 or Hello world does not, so the converter reports a parse error instead of guessing a structure. To turn plain text into JSON you need to write the structure yourself, for example {"name":"Ana","age":30}, and then paste it here to validate and format it.
JSON-encoded string literals
When JSON is serialized a second time, or saved in a text column, it becomes a string literal like "{\"name\":\"Ana\"}". The String to JSON converter removes matching outer double or single quotes, unescapes the text once and parses the result. The outer quotes are optional, and ordinary unescaped JSON is parsed as-is.
Escaped quotes and newlines
Inside a string literal every quote is written as \", and a line break inside a value is written as \\n because it is escaped twice. Unescaping turns these into " and \n in the parsed JSON. A single \n between keys and values is fine, but a single \n inside a value becomes a raw line break, which JSON does not allow, so parsing fails.
JSON stored inside a field
APIs, queues and logs often carry JSON inside a string field, such as {"event":"signup","payload":"{\"userId\":7}"}. If you paste the whole object, the outer object is parsed and payload stays a string, because nested strings are not parsed recursively. Copy the field value, including its quotes, and paste it on its own to get { "userId": 7 } as an object.
Double-encoded strings
Each conversion removes one layer of quoting and escaping. If a value was encoded twice, the first result is still a quoted string such as "{\"id\":1}". Paste that result back into the input and convert again to get the JSON object.
The opposite direction: JSON to string
To turn JSON into an escaped string for source code, an environment variable or a log message, use the JSON Escape & Unescape tool. It also unescapes text without parsing it, which helps when the content is not JSON at all.