Expecting ',' delimiter: line L column C (char N)
This message comes from CPython json.loads on CPython 3.12.3. In this registry it is produced by 8 distinct mistakes. Positions in the real message vary with your input; the causes do not.
What produces this message
Colon inside a JSON array
[1: 2]Exact message: Expecting ',' delimiter: line 1 column 3 (char 2)
Fix: Decide which you meant: `{"1": 2}` for a mapping, `[1, 2]` for a list.
Hexadecimal number in JSON
{"a": 0x1F}Exact message: Expecting ',' delimiter: line 1 column 8 (char 7)
Fix: Convert to decimal, or quote it as a string if the hex form is the meaningful representation.
Leading zero in a JSON number
{"a": 013}Exact message: Expecting ',' delimiter: line 1 column 8 (char 7)
Fix: Quote it. `"013"` is a string and keeps its padding; `13` is a number and does not.
Missing comma between array elements
[1 2]Exact message: Expecting ',' delimiter: line 1 column 4 (char 3)
Fix: Add a comma between the elements.
Missing comma between object members
{"a": 1 "b": 2}Exact message: Expecting ',' delimiter: line 1 column 9 (char 8)
Fix: Add a comma between the two members.
Trailing decimal point in a JSON number
{"a": 1.}Exact message: Expecting ',' delimiter: line 1 column 8 (char 7)
Fix: Write `1.0` or `1`.
Unclosed array — unexpected end of JSON input
[1, 2Exact message: Expecting ',' delimiter: line 1 column 6 (char 5)
Fix: Confirm the full body arrived before parsing.
Unclosed object — unexpected end of JSON input
{"a": 1Exact message: Expecting ',' delimiter: line 1 column 8 (char 7)
Fix: Verify you received the whole payload. Compare the byte count against Content-Length, and check for proxy or log truncation.
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 |
|---|---|
| Gson | Unterminated array at line L column C path $…Unterminated object at line L column C path $…java.io.EOFException: End of input at line L column C path $… |
| Gson JsonParser (lenient off) | Unterminated array at line L column C path $…Unterminated object at line L column C path $…java.io.EOFException: End of input at line L column C path $… |
| JSON5 | JSON5: invalid character '1' at 1:8JSON5: invalid character '2' at 1:4JSON5: invalid character ':' at 1:3JSON5: invalid character '\"' at 1:9JSON5: invalid end of input at 1:6JSON5: invalid end of input at 1:8 |
| JSON::PP | , or ] expected while parsing array, at character offset N (before "…"), or } expected while parsing object/hash, at character offset N (before "…")malformed number (leading zero must not be followed by another digit), at character offset N (before "…")malformed number (no digits after decimal point), at character offset N (before "…") |
| Jackson ObjectMapper | Invalid numeric value: Leading zeroes not allowedUnexpected character ('"' (code 34)): was expecting comma to separate Object entriesUnexpected character ('2' (code 50)): was expecting comma to separate Array entriesUnexpected character (':' (code 58)): was expecting comma to separate Array entriesUnexpected character ('x' (code 120)): was expecting comma to separate Object entriesUnexpected character ('}' (code 125)) in numeric value: Decimal point not followed by a digitUnexpected end-of-input: expected close marker for Array (start markerUnexpected end-of-input: expected close marker for Object (start marker |
| JavaScriptCore JSON.parse | JSON Parse error: Expected ']'JSON Parse error: Expected '}'JSON Parse error: Invalid digits after decimal point |
| Newtonsoft.Json JsonConvert | After parsing a value an unexpected character was encountered: ". Path 'a', line L, position N.After parsing a value an unexpected character was encountered: 2. Path '[0]', line L, position N.Unexpected character encountered while parsing number: :. Path '', line L, position N.Unexpected end when deserializing object. Path 'a', line L, position N. |
| Newtonsoft.Json JsonTextReader | After parsing a value an unexpected character was encountered: ". Path 'a', line L, position N.After parsing a value an unexpected character was encountered: 2. Path '[0]', line L, position N.Unexpected character encountered while parsing number: :. Path '', line L, position N. |
| Ruby JSON.parse | unexpected token at '…' |
| SpiderMonkey JSON.parse | JSON.parse: end of data after property value in object at line L column C of the JSON dataJSON.parse: end of data when ',' or ']' was expected at line L column C of the JSON dataJSON.parse: expected ',' or ']' after array element at line L column C of the JSON dataJSON.parse: expected ',' or '}' after property value in object at line L column C of the JSON dataJSON.parse: unterminated fractional number at line L column C of the JSON data |
| System.Text.Json Deserialize | '"' is invalid after a value. Expected either ',', '}', or ']'. Path: $ | LineNumber: L | BytePositionInLine: C.'1' is an invalid end of a number. Expected a delimiter. Path: $ | LineNumber: L | BytePositionInLine: C.'2' is an invalid end of a number. Expected a delimiter. Path: $ | LineNumber: L | BytePositionInLine: C.'2' is invalid after a value. Expected either ',', '}', or ']'. Path: $ | LineNumber: L | BytePositionInLine: C.':' is an invalid end of a number. Expected a delimiter. Path: $ | LineNumber: L | BytePositionInLine: C.'x' is an invalid end of a number. Expected a delimiter. Path: $ | LineNumber: L | BytePositionInLine: C.'}' is invalid within a number, immediately after a decimal point ('.'). Expected a digit ('0'-'9'). Path: $ | LineNumber: L | BytePositionInLine: C.Invalid leading zero before '1'. Path: $ | LineNumber: L | BytePositionInLine: C. |
| System.Text.Json JsonDocument | '"' is invalid after a value. Expected either ',', '}', or ']'. LineNumber: L | BytePositionInLine: C.'1' is an invalid end of a number. Expected a delimiter. LineNumber: L | BytePositionInLine: C.'2' is an invalid end of a number. Expected a delimiter. LineNumber: L | BytePositionInLine: C.'2' is invalid after a value. Expected either ',', '}', or ']'. LineNumber: L | BytePositionInLine: C.':' is an invalid end of a number. Expected a delimiter. LineNumber: L | BytePositionInLine: C.'x' is an invalid end of a number. Expected a delimiter. LineNumber: L | BytePositionInLine: C.'}' is invalid within a number, immediately after a decimal point ('.'). Expected a digit ('0'-'9'). LineNumber: L | BytePositionInLine: C.Invalid leading zero before '1'. LineNumber: L | BytePositionInLine: C. |
| V8 JSON.parse | Expected ',' or ']' after array element in JSON at position N (line L column C)Expected ',' or '}' after property value in JSON at position N (line L column C)Unexpected number in JSON at position N (line L column C)Unterminated fractional number in JSON at position N (line L column C) |
| encoding/json Unmarshal | invalid character '"' after object key:value pairinvalid character '1' after object key:value pairinvalid character '2' after array elementinvalid character ':' after array elementinvalid character 'x' after object key:value pairinvalid character '}' after decimal point in numeric literalunexpected end of JSON input |
| hjson | End of input while parsing an array (missing ']') at line L,5End of input while parsing an array (missing ']') at line L,6End of input while parsing an object (missing '}') at line L,10End of input while parsing an object (missing '}') at line L,11End of input while parsing an object (missing '}') at line L,15End of input while parsing an object (missing '}') at line L,7 |
| json-bigint | Expected ',' instead of '"'Expected ',' instead of ''Expected ',' instead of '2'Expected ',' instead of ':'Expected ',' instead of 'x' |
| json_decode | Syntax error |
| orjson | no digit after decimal point: line L column C (char N)number with leading zero is not allowed: line L column C (char N)unexpected character, expected ',' or ']': line L column C (char N)unexpected character, expected ',' or '}': line L column C (char N)unexpected end of data: line L column C (char N) |
| serde_json::from_str | EOF while parsing a list at line L column CEOF while parsing an object at line L column Cexpected `,` or `]` at line L column Cexpected `,` or `}` at line L column Cinvalid number at line L column C |
| ujson | Unexpected character found when decoding array value (2)Unexpected character in found when decoding object value |
Standards this registry is checked against
- RFC 8259 (STD 90) — The JavaScript Object Notation (JSON) Data Interchange Format, T. Bray, Ed., 2017. The IETF Internet Standard for JSON. Obsoletes RFC 7159 and RFC 4627.
- ECMA-404, 2nd edition — The JSON Data Interchange Syntax, Ecma International, 2017. Ecma’s grammar for JSON. A normative reference of RFC 8259; the two define the same syntax.
- The Unicode Standard — The Unicode Standard, Core Specification, The Unicode Consortium, current. Normatively referenced by RFC 8259 for the definition of a character.
- IEEE 754-2019 — IEEE Standard for Floating-Point Arithmetic, IEEE, 2019. Referenced by RFC 8259 §6 as the basis for its interoperability guidance on numbers.
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.