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 / Unmatched '"' when decoding 'string'
ujson · CPython 3.12.3

Unmatched '"' when decoding 'string'

This message comes from ujson on CPython 3.12.3. In this registry it is produced by 2 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: Unmatched '"' when decoding 'string'

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

Unterminated string in JSON

Input
{"a": "hello}

Exact message: Unmatched '"' when decoding '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 end of input at 1:14
JSON::PPinvalid character 0x0 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 valueUnexpected end-of-input: was expecting closing quote for a string value
JavaScriptCore JSON.parseJSON Parse error: Unterminated string
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.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.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 '\x00' in string literalunexpected end of JSON input
hjsonBad string at line L,13
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

← 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.