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: unexpected character at line L column
SpiderMonkey JSON.parse · SpiderMonkey 115

JSON.parse: unexpected character at line L column C of the JSON data

This message comes from SpiderMonkey JSON.parse on SpiderMonkey 115. In this registry it is produced by 14 distinct mistakes. Positions in the real message vary with your input; the causes do not.

What produces this message

Bare unquoted word as a JSON document

Input
hello

Exact message: JSON.parse: unexpected character at line 1 column 1 of the JSON data

Fix: Quote it: `"hello"` is a valid JSON document, `hello` is not.

UTF-8 BOM before a JSON document

Input
{"a": 1}

Exact message: JSON.parse: unexpected character at line 1 column 1 of the JSON data

Fix: Save the file as UTF-8 without BOM. In PowerShell use `Set-Content -Encoding utf8NoBOM`; in Notepad choose 'UTF-8' rather than 'UTF-8 with BOM'.

Double comma in a JSON array

Input
[1,,2]

Exact message: JSON.parse: unexpected character at line 1 column 4 of the JSON data

Fix: Remove the extra comma, or write `null` if the empty slot is meaningful.

HTML received where JSON was expected

Input
<!DOCTYPE html>
<html><body>500</body></html>

Exact message: JSON.parse: unexpected character at line 1 column 1 of the JSON data

Fix: Check the HTTP status and the Content-Type header before parsing. Log the first 200 characters of the body when parsing fails so the actual page is visible in your logs.

Infinity is not valid JSON

Input
{"a": Infinity}

Exact message: JSON.parse: unexpected character at line 1 column 7 of the JSON data

Fix: Write `null`, a string, or clamp the value before serialising. Python: `json.dumps(x, allow_nan=False)`.

Leading decimal point in a JSON number

Input
{"a": .5}

Exact message: JSON.parse: unexpected character at line 1 column 7 of the JSON data

Fix: Write `0.5`.

Leading plus sign in a JSON number

Input
{"a": +1}

Exact message: JSON.parse: unexpected character at line 1 column 7 of the JSON data

Fix: Drop the plus, or quote the value if the sign is meaningful text.

NaN is not valid JSON

Input
{"a": NaN}

Exact message: JSON.parse: unexpected character at line 1 column 7 of the JSON data

Fix: Emit `null` instead, or a sentinel your consumer understands. In Python, pass `allow_nan=False` to `json.dumps` so the problem surfaces at write time rather than at read time in someone else's service.

Python True / False / None in JSON

Input
{"a": True, "b": None}

Exact message: JSON.parse: unexpected character at line 1 column 7 of the JSON data

Fix: Serialise with `json.dumps()` rather than `str()`, `repr()`, or an f-string.

Whole JSON document wrapped in quotes

Input
'{"a": 1}'

Exact message: JSON.parse: unexpected character at line 1 column 1 of the JSON data

Fix: Parse twice, or fix the producer so it sends the object rather than a string containing the object.

Trailing comma in a JSON array

Input
[1, 2, 3,]

Exact message: JSON.parse: unexpected character at line 1 column 10 of the JSON data

Fix: Delete the comma before the closing bracket, or build the array with a join instead of manual concatenation.

undefined is not valid JSON

Input
{"a": undefined}

Exact message: JSON.parse: unexpected character at line 1 column 7 of the JSON data

Fix: Use `null` for an intentionally empty value, or omit the key entirely.

The literal string 'undefined' as a JSON document

Input
undefined

Exact message: JSON.parse: unexpected character at line 1 column 1 of the JSON data

Fix: Guard against undefined before sending, and send `JSON.stringify(value)` rather than a template literal.

Unquoted string value in JSON

Input
{"a": hello}

Exact message: JSON.parse: unexpected character at line 1 column 7 of the JSON data

Fix: Wrap the value in double quotes.

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.loadsExpecting value: line L column C (char N)Unexpected UTF-8 BOM (decode using utf-8-sig): line L column C (char N)
GsonUse JsonReader.setLenient(true) to accept malformed JSON at line L column C path $…
Gson JsonParser (lenient off)Use JsonReader.setLenient(true) to accept malformed JSON at line L column C path $…
JSON5JSON5: invalid character ',' at 1:4JSON5: invalid character '<' at 1:1JSON5: invalid character 'T' at 1:7JSON5: invalid character 'h' at 1:1JSON5: invalid character 'h' at 1:7JSON5: invalid character 'u' at 1:1JSON5: invalid character 'u' at 1:7
JSON::PPmalformed JSON string, neither array, object, number, string or atom, at character offset N (before "…")
Jackson ObjectMapperNon-standard token 'Infinity': enable `JsonReadFeature.ALLOW_NON_NUMERIC_NUMBERS` to allowNon-standard token 'NaN': enable `JsonReadFeature.ALLOW_NON_NUMERIC_NUMBERS` to allowUnexpected character (''' (code 39)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')Unexpected character ('+' (code 43)) in numeric value: JSON spec does not allow numbers to have plus signs: enable `JsonReadFeature.ALLOW_LEADING_PLUS_SIGN_FOR_NUMBERS` to allowUnexpected character (',' (code 44)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')Unexpected character ('.' (code 46)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')Unexpected character ('<' (code 60)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')Unexpected character ('?' (code 65279 / 0xfeff)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')Unexpected character (']' (code 93)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')Unrecognized token 'True': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')Unrecognized token 'hello': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')Unrecognized token 'undefined': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
JavaScriptCore JSON.parseJSON Parse error: Single quotes (') are not allowed in JSONJSON Parse error: Unexpected comma at the end of array expressionJSON Parse error: Unexpected identifier "Infinity"JSON Parse error: Unexpected identifier "NaN"JSON Parse error: Unexpected identifier "True"JSON Parse error: Unexpected identifier "hello"JSON Parse error: Unexpected identifier "undefined"JSON Parse error: Unexpected token ','JSON Parse error: Unexpected token '.'JSON Parse error: Unrecognized token '+'JSON Parse error: Unrecognized token '<'JSON Parse error: Unrecognized token ''
Newtonsoft.Json JsonConvertUnexpected character encountered while parsing value: +. Path 'a', line L, position N.Unexpected character encountered while parsing value: <. Path '', line L, position N.Unexpected character encountered while parsing value: T. Path 'a', line L, position N.Unexpected character encountered while parsing value: h. Path '', line L, position N.Unexpected character encountered while parsing value: h. Path 'a', line L, position N.Unexpected character encountered while parsing value: . Path '', line L, position N.
Newtonsoft.Json JsonTextReaderUnexpected character encountered while parsing value: +. Path 'a', line L, position N.Unexpected character encountered while parsing value: <. Path '', line L, position N.Unexpected character encountered while parsing value: T. Path 'a', line L, position N.Unexpected character encountered while parsing value: h. Path '', line L, position N.Unexpected character encountered while parsing value: h. Path 'a', line L, position N.Unexpected character encountered while parsing value: . Path '', line L, position N.
Ruby JSON.parseunexpected token at '…'
System.Text.Json Deserialize''' is an invalid start of a value. Path: $ | LineNumber: L | BytePositionInLine: C.'+' is an invalid start of a value. Path: $ | LineNumber: L | BytePositionInLine: C.',' is an invalid start of a value. Path: $ | LineNumber: L | BytePositionInLine: C.'.' is an invalid start of a value. Path: $ | LineNumber: L | BytePositionInLine: C.'0xEF' is an invalid start of a value. Path: $ | LineNumber: L | BytePositionInLine: C.'<' is an invalid start of a value. Path: $ | LineNumber: L | BytePositionInLine: C.'I' is an invalid start of a value. Path: $ | LineNumber: L | BytePositionInLine: C.'N' is an invalid start of a value. Path: $ | LineNumber: L | BytePositionInLine: C.'T' is an invalid start of a value. Path: $ | LineNumber: L | BytePositionInLine: C.'h' is an invalid start of a value. Path: $ | LineNumber: L | BytePositionInLine: C.'u' is an invalid start of a value. Path: $ | LineNumber: L | BytePositionInLine: C.The JSON array contains a trailing comma at the end which is not supported in this mode. Change the reader options. Path: $ | LineNumber: L | BytePositionInLine: C.
System.Text.Json JsonDocument''' is an invalid start of a value. LineNumber: L | BytePositionInLine: C.'+' is an invalid start of a value. LineNumber: L | BytePositionInLine: C.',' is an invalid start of a value. LineNumber: L | BytePositionInLine: C.'.' is an invalid start of a value. LineNumber: L | BytePositionInLine: C.'0xEF' is an invalid start of a value. LineNumber: L | BytePositionInLine: C.'<' is an invalid start of a value. LineNumber: L | BytePositionInLine: C.'I' is an invalid start of a value. LineNumber: L | BytePositionInLine: C.'N' is an invalid start of a value. LineNumber: L | BytePositionInLine: C.'T' is an invalid start of a value. LineNumber: L | BytePositionInLine: C.'h' is an invalid start of a value. LineNumber: L | BytePositionInLine: C.'u' is an invalid start of a value. LineNumber: L | BytePositionInLine: C.The JSON array contains a trailing comma at the end which is not supported in this mode. Change the reader options. LineNumber: L | BytePositionInLine: C.
V8 JSON.parse"undefined" is not valid JSONUnexpected token ''', "'{"a": 1}'" is not valid JSONUnexpected token '+', "{"a": +1}" is not valid JSONUnexpected token ',', "[1,,2]" is not valid JSONUnexpected token '.', "{"a": .5}" is not valid JSONUnexpected token '<', "…"... is not valid JSONUnexpected token 'I', "{"a": Infinity}" is not valid JSONUnexpected token 'N', "{"a": NaN}" is not valid JSONUnexpected token 'T', "{"a": True, "b"…"... is not valid JSONUnexpected token ']', "[1, 2, 3,]" is not valid JSONUnexpected token 'h', "hello" is not valid JSONUnexpected token 'h', "{"a": hello}" is not valid JSONUnexpected token 'u', "{"a": undefined}" is not valid JSONUnexpected token '', "{"a": 1}" is not valid JSON
encoding/json Unmarshalinvalid character '+' looking for beginning of valueinvalid character ',' looking for beginning of valueinvalid character '.' looking for beginning of valueinvalid character '<' looking for beginning of valueinvalid character 'I' looking for beginning of valueinvalid character 'N' looking for beginning of valueinvalid character 'T' looking for beginning of valueinvalid character '\'' looking for beginning of valueinvalid character ']' looking for beginning of valueinvalid character 'h' looking for beginning of valueinvalid character 'u' looking for beginning of valueinvalid character 'ï' looking for beginning of value
hjsonEnd of input while parsing an object (missing '}') at line L,10End of input while parsing an object (missing '}') at line L,12End of input while parsing an object (missing '}') at line L,15End of input while parsing an object (missing '}') at line L,16End of input while parsing an object (missing '}') at line L,22End of input while parsing an object (missing '}') at line L,9Found EOF while looking for a key name (check your syntax) at line L,30Found a punctuator character ',' when expecting a quoteless string (check your syntax) at line L,3
json-bigintUnexpected '''Unexpected '+'Unexpected ','Unexpected '.'Unexpected '<'Unexpected 'I'Unexpected 'N'Unexpected 'T'Unexpected ']'Unexpected 'h'Unexpected 'u'Unexpected ''
json_decodeSyntax error
orjsonUTF-8 byte order mark (BOM) is not supported: line L column C (char N)no digit after sign: line L column C (char N)trailing comma is not allowed: line L column C (char N)unexpected character, expected a JSON value: line L column C (char N)
serde_json::from_strexpected value at line L column Ctrailing comma at line L column C
ujsonExpected object or valueUnexpected character found when decoding array value (1)

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