invalid escaped sequence in string: line L column C (char N)
This message comes from orjson on CPython 3.12.3. 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
Invalid escape sequence in a JSON string
{"a": "c:\x41"}Exact message: invalid escaped sequence in string: line 1 column 10 (char 9)
Fix: Escape the backslash itself: write `C:\\Users`. Or use forward slashes, which Windows accepts in most APIs.
Malformed \u escape in a JSON string
{"a": "\uZZZZ"}Exact message: invalid escaped sequence in string: line 1 column 8 (char 7)
Fix: Supply four hex digits, or escape the backslash if you meant a literal `\u`.
Truncated \u escape in a JSON string
{"a": "\u12"}Exact message: invalid escaped sequence in string: line 1 column 8 (char 7)
Fix: Pad to four digits: `\u0012`, not `\u12`.
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 | Invalid \escape: line L column C (char N)Invalid \uXXXX escape: line L column C (char N) |
| Gson | Invalid escape sequence at line L column C path $…\u12"}\uZZZZ |
| Gson JsonParser (lenient off) | Invalid escape sequence at line L column C path $…java.lang.NumberFormatException: \u12"}java.lang.NumberFormatException: \uZZZZ |
| JSON5 | JSON5: invalid character 'Z' at 1:10JSON5: invalid character '\"' at 1:12 |
| JSON::PP | illegal backslash escape sequence in string, at character offset N (before "…")unexpected end of string while parsing JSON string, at character offset N (before "…") |
| Jackson ObjectMapper | Unexpected character ('"' (code 34)): expected a hex-digit for character escape sequenceUnexpected character ('Z' (code 90)): expected a hex-digit for character escape sequenceUnrecognized character escape 'x' (code 120) |
| JavaScriptCore JSON.parse | JSON Parse error: "\u12"}" is not a valid unicode escapeJSON Parse error: "\uZZZZ" is not a valid unicode escapeJSON Parse error: Invalid escape character x |
| Newtonsoft.Json JsonConvert | Bad JSON escape sequence: \x. Path 'a', line L, position N.Invalid Unicode escape sequence: \uZZZZ. Path 'a', line L, position N.Unexpected end while parsing Unicode escape sequence. Path 'a', line L, position N. |
| Newtonsoft.Json JsonTextReader | Bad JSON escape sequence: \x. Path 'a', line L, position N.Invalid Unicode escape sequence: \uZZZZ. Path 'a', line L, position N.Unexpected end while parsing Unicode escape sequence. Path 'a', line L, position N. |
| Ruby JSON.parse | unexpected token at '…' |
| SpiderMonkey JSON.parse | JSON.parse: bad Unicode escape at line L column C of the JSON dataJSON.parse: bad escaped character at line L column C of the JSON data |
| System.Text.Json Deserialize | '"' is not a hex digit following '\u' within a JSON string. The string should be correctly escaped. Path: $ | LineNumber: L | BytePositionInLine: C.'Z' is not a hex digit following '\u' within a JSON string. The string should be correctly escaped. Path: $ | LineNumber: L | BytePositionInLine: C.'x' is an invalid escapable character within a JSON string. The string should be correctly escaped. Path: $ | LineNumber: L | BytePositionInLine: C. |
| System.Text.Json JsonDocument | '"' is not a hex digit following '\u' within a JSON string. The string should be correctly escaped. LineNumber: L | BytePositionInLine: C.'Z' is not a hex digit following '\u' within a JSON string. The string should be correctly escaped. LineNumber: L | BytePositionInLine: C.'x' is an invalid escapable character within a JSON string. The string should be correctly escaped. LineNumber: L | BytePositionInLine: C. |
| V8 JSON.parse | Bad Unicode escape in JSON at position N (line L column C)Bad escaped character in JSON at position N (line L column C) |
| encoding/json Unmarshal | invalid character '"' in \u hexadecimal character escapeinvalid character 'Z' in \u hexadecimal character escapeinvalid character 'x' in string escape code |
| hjson | Bad \u char " at line L,11Bad \u char Z at line L,9Bad string at line L,10 |
| json-bigint | Bad string |
| json_decode | Syntax error |
| serde_json::from_str | invalid escape at line L column C |
| ujson | Unexpected character in unicode escape sequence when decoding 'string'Unrecognized escape sequence when decoding 'string' |
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.