Missing comma between object members
Two key/value pairs with no separator. Common after copy-pasting a block of members or deleting a member and taking its neighbour's comma with it.
The input
{"a": 1 "b": 2}{"a": 1, "b": 2}How to fix it
Add a comma between the two members.
The reported position points at the start of the *second* key, not at the place where the comma should go — look one token to the left.
What each parser reports
Every message below was captured by running this exact input through the parser named. 21 of 21 parsers rejected it.
| Parser | Exact message |
|---|---|
| CPython json.loads CPython 3.12.3 | Expecting ',' delimiter: line 1 column 9 (char 8)what this message means → |
| encoding/json Unmarshal Go go1.22.2 | invalid character '"' after object key:value pairwhat this message means → |
| Gson Java 21.0.12 | Unterminated object at line 1 column 10 path $.awhat this message means → |
| Gson JsonParser (lenient off) Java 21.0.12 | Unterminated object at line 1 column 10 path $.awhat this message means → |
| hjson Node.js 22.22.2 | End of input while parsing an object (missing '}') at line 1,15 >>>"a": 1 "b": 2} ...what this message means → |
| Jackson ObjectMapper Java 21.0.12 | Unexpected character ('"' (code 34)): was expecting comma to separate Object entrieswhat this message means → |
| JavaScriptCore JSON.parse JavaScriptCore (Bun 1.4.1) | JSON Parse error: Expected '}'what this message means → |
| json-bigint Node.js 22.22.2 | Expected ',' instead of '"'what this message means → |
| JSON5 Node.js 22.22.2 | JSON5: invalid character '\"' at 1:9what this message means → |
| JSON::PP Perl 5.038002 | , or } expected while parsing object/hash, at character offset 8 (before ""b": 2}")what this message means → |
| json_decode PHP 8.3.6 | Syntax error |
| Newtonsoft.Json JsonConvert Newtonsoft.Json 13.0.3 on .NET 8.0.30 | After parsing a value an unexpected character was encountered: ". Path 'a', line 1, position 8.what this message means → |
| Newtonsoft.Json JsonTextReader Newtonsoft.Json 13.0.3 on .NET 8.0.30 | After parsing a value an unexpected character was encountered: ". Path 'a', line 1, position 8.what this message means → |
| orjson CPython 3.12.3 | unexpected character, expected ',' or '}': line 1 column 9 (char 8)what this message means → |
| Ruby JSON.parse Ruby 3.2.3 | unexpected token at '{"a": 1 "b": 2}' |
| serde_json::from_str Rust (serde_json 1.x) | expected `,` or `}` at line 1 column 9what this message means → |
| SpiderMonkey JSON.parse SpiderMonkey 115 | JSON.parse: expected ',' or '}' after property value in object at line 1 column 9 of the JSON datawhat this message means → |
| System.Text.Json Deserialize .NET 8.0.30 | '"' is invalid after a value. Expected either ',', '}', or ']'. Path: $ | LineNumber: 0 | BytePositionInLine: 8.what this message means → |
| System.Text.Json JsonDocument .NET 8.0.30 | '"' is invalid after a value. Expected either ',', '}', or ']'. LineNumber: 0 | BytePositionInLine: 8.what this message means → |
| ujson CPython 3.12.3 | Unexpected character in found when decoding object valuewhat this message means → |
| V8 JSON.parse Node.js 22.22.2 | Expected ',' or '}' after property value in JSON at position 8 (line 1 column 9)what this message means → |
What the specification says
The exact sections that govern this error. Descriptions are our paraphrase; follow the links for the normative text.
| Body | Section |
|---|---|
| IETF | An object is curly brackets around zero or more members. A name is a string, a single colon separates name from value, and a single comma separates a value from a following name. |
| Ecma International | Gives the object grammar and states that the syntax does not require name strings to be unique and assigns no significance to member ordering. |
Other errors in this category
Trailing comma in a JSON object
A comma after the last member of an object. JavaScript, Python and most modern languages allow this in their own literal syntax, s…
Trailing comma in a JSON array
A comma after the last element of an array. Usually produced by a loop that appends `item + ','` without special-casing the final …
Single-quoted strings in JSON
JSON only recognises double quotes. Single quotes are valid in JavaScript, Python and YAML, so pasted snippets from those language…
Unquoted object key in JSON
Object keys must be double-quoted strings. A bare identifier is legal in a JavaScript object literal but not in JSON.…
Missing comma between array elements
Two values in an array with only whitespace between them.…
Missing colon after an object key
A key followed directly by its value with no colon separating them.…
// comments are not valid JSON
JSON has no comment syntax. Comments are ubiquitous in config files, and several tools (VS Code settings, tsconfig) accept them vi…
/* */ comments are not valid JSON
Block comments, like line comments, have no place in the JSON grammar.…
Unquoted string value in JSON
A value that is neither a number, `true`, `false`, `null`, an object nor an array must be a quoted string.…
Numeric object key in JSON
A key written as a bare number. JSON object keys are always strings, even when they look like integers.…
Comma in an empty JSON object
A comma with no members around it, usually left after deleting the last entry of an object.…
Colon inside a JSON array
Object syntax used inside array brackets — the brackets should be braces, or the colon should be a comma.…
Double comma in a JSON array
Two commas in a row, leaving an empty slot. JavaScript allows array holes; JSON does not.…
Python dict repr passed off as JSON
The output of `str(dict)` or `print(dict)` rather than `json.dumps(dict)`. It combines single quotes with, potentially, `True`/`Fa…
JavaScript object literal passed off as JSON
Unquoted keys, single-quoted strings and trailing commas together — valid JavaScript source, not a JSON document.…