JSON Parse error: Single quotes (') are not allowed in JSON
This message comes from JavaScriptCore JSON.parse on JavaScriptCore (Bun 1.4.1). In this registry it is produced by 3 distinct mistakes. Positions in the real message vary with your input; the causes do not.
What produces this message
Python dict repr passed off as JSON
{'a': 1, 'b': [1, 2]}Exact message: JSON Parse error: Single quotes (') are not allowed in JSON
Fix: Use `json.dumps()`. If you only have the broken text, `ast.literal_eval()` reads it safely.
Whole JSON document wrapped in quotes
'{"a": 1}'Exact message: JSON Parse error: Single quotes (') are not allowed in JSON
Fix: Parse twice, or fix the producer so it sends the object rather than a string containing the object.
Single-quoted strings in JSON
{'a': 1}Exact message: JSON Parse error: Single quotes (') are not allowed in JSON
Fix: Replace every single quote used as a string delimiter with a double quote. Watch for apostrophes inside the text — those stay as they are.
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.loads | Expecting property name enclosed in double quotes: line L column C (char N)Expecting value: line L column C (char N) |
| JSON::PP | malformed JSON string, neither array, object, number, string or atom, at character offset N (before "…")unexpected end of string while parsing JSON string, at character offset N (before "…") |
| Jackson ObjectMapper | Unexpected character (''' (code 39)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')Unexpected character (''' (code 39)): was expecting double-quote to start field name |
| Ruby JSON.parse | unexpected token at '…' |
| SpiderMonkey JSON.parse | JSON.parse: expected property name or '}' at line L column C of the JSON dataJSON.parse: unexpected character at line L column C of the JSON data |
| System.Text.Json Deserialize | ''' is an invalid start of a property name. Expected a '"'. Path: $ | LineNumber: L | BytePositionInLine: C.''' is an invalid start of a value. Path: $ | LineNumber: L | BytePositionInLine: C. |
| System.Text.Json JsonDocument | ''' is an invalid start of a property name. Expected a '"'. LineNumber: L | BytePositionInLine: C.''' is an invalid start of a value. LineNumber: L | BytePositionInLine: C. |
| V8 JSON.parse | Expected property name or '}' in JSON at position N (line L column C)Unexpected token ''', "'{"a": 1}'" is not valid JSON |
| encoding/json Unmarshal | invalid character '\'' looking for beginning of object key stringinvalid character '\'' looking for beginning of value |
| json-bigint | Bad stringUnexpected ''' |
| json_decode | Syntax error |
| orjson | unexpected character, expected a JSON value: line L column C (char N)unexpected character, expected a string key: line L column C (char N) |
| serde_json::from_str | expected value at line L column Ckey must be a string at line L column C |
| ujson | Expected object or 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.