Formatter Validator Minifier Escape / Unescape JSON ↔ String JSON ↔ YAML JSON → CSV NDJSON / JSON Lines JSON → Types JSON ↔ XML JSON Diff JSON Patch Canonicalize (RFC 8785) Schema Validator Schema Generator JSONPath Tester JWT Decoder JSON Errors Schemas More Tools
JSONTools / JSON errors / JSON Parse error: Unterminated string
JavaScriptCore JSON.parse · JavaScriptCore (Bun 1.4.1)

JSON Parse error: Unterminated string

This message comes from JavaScriptCore JSON.parse on JavaScriptCore (Bun 1.4.1). In this registry it is produced by 4 distinct mistakes. Positions in the real message vary with your input; the causes do not.

What produces this message

Raw NUL byte inside a JSON string

Input
{"a": "xy"}

Exact message: JSON Parse error: Unterminated string

Fix: Escape it as `\u0000`, or — better — base64-encode binary data instead of putting raw bytes in a string.

Literal newline inside a JSON string

Input
{"a": "line1
line2"}

Exact message: JSON Parse error: Unterminated string

Fix: Escape it as `\n`. Any correct serialiser does this for you.

Literal tab inside a JSON string

Input
{"a": "col1	col2"}

Exact message: JSON Parse error: Unterminated string

Fix: Escape it as `\t`.

Unterminated string in JSON

Input
{"a": "hello}

Exact message: JSON Parse error: Unterminated string

Fix: Escape internal double quotes as `\"`, and check that every string has a matching closing quote.

What other parsers say about the same input

If a colleague reports a different message for what looks like the same file, this is why.

Parser Message for the same inputs
CPython json.loadsInvalid control character at: line L column C (char N)Unterminated string starting at: line L column C (char N)
GsonUnterminated string at line L column C path $…
Gson JsonParser (lenient off)Unterminated string at line L column C path $…
JSON5JSON5: invalid character '\n' at 2:0JSON5: invalid end of input at 1:14
JSON::PPinvalid character 0x0 encountered while parsing JSON string, at character offset N (before "…")invalid character 0x9 encountered while parsing JSON string, at character offset N (before "…")invalid character 0xA encountered while parsing JSON string, at character offset N (before "…")unexpected end of string while parsing JSON string, at character offset N (before "…")
Jackson ObjectMapperIllegal unquoted character ((CTRL-CHAR, code 0)): has to be escaped using backslash to be included in string valueIllegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backslash to be included in string valueIllegal unquoted character ((CTRL-CHAR, code 9)): has to be escaped using backslash to be included in string valueUnexpected end-of-input: was expecting closing quote for a string value
Newtonsoft.Json JsonConvertUnterminated string. Expected delimiter: ". Path 'a', line L, position N.
Newtonsoft.Json JsonTextReaderUnterminated string. Expected delimiter: ". Path 'a', line L, position N.
Ruby JSON.parseunexpected token at '…'
SpiderMonkey JSON.parseJSON.parse: bad control character in string literal at line L column C of the JSON dataJSON.parse: unterminated string at line L column C of the JSON data
System.Text.Json Deserialize'0x00' is invalid within a JSON string. The string should be correctly escaped. Path: $ | LineNumber: L | BytePositionInLine: C.'0x09' is invalid within a JSON string. The string should be correctly escaped. Path: $ | LineNumber: L | BytePositionInLine: C.'0x0A' is invalid within a JSON string. The string should be correctly escaped. Path: $ | LineNumber: L | BytePositionInLine: C.Expected end of string, but instead reached end of data. Path: $ | LineNumber: L | BytePositionInLine: C.
System.Text.Json JsonDocument'0x00' is invalid within a JSON string. The string should be correctly escaped. LineNumber: L | BytePositionInLine: C.'0x09' is invalid within a JSON string. The string should be correctly escaped. LineNumber: L | BytePositionInLine: C.'0x0A' is invalid within a JSON string. The string should be correctly escaped. LineNumber: L | BytePositionInLine: C.Expected end of string, but instead reached end of data. LineNumber: L | BytePositionInLine: C.
V8 JSON.parseBad control character in string literal in JSON at position N (line L column C)Unterminated string in JSON at position N (line L column C)
encoding/json Unmarshalinvalid character '\n' in string literalinvalid character '\t' in string literalinvalid character '\x00' in string literalunexpected end of JSON input
hjsonBad string at line L,13Bad string containing newline at line L,0
json-bigintBad string
json_decodeControl character error, possibly incorrectly encoded
orjsonunexpected control character in string: line L column C (char N)unexpected end of data: line L column C (char N)
serde_json::from_strEOF while parsing a string at line L column Ccontrol character (\u0000-\u001F) found while parsing a string at line L column C
ujsonUnmatched '"' when decoding 'string'

← All JSON parser errors

Standards this registry is checked against

Only standards bodies and peer-reviewed venues are cited. Error strings on this site are observed by executing each parser; the standards above define what the parser is reacting to.