Unexpected character encountered while parsing value: <. Path '', line L, position N.
This message comes from Newtonsoft.Json JsonConvert on Newtonsoft.Json 13.0.3 on .NET 8.0.30. In this registry it is produced by 1 distinct mistake. Positions in the real message vary with your input; the causes do not.
What produces this message
HTML received where JSON was expected
<!DOCTYPE html>
<html><body>500</body></html>Exact message: Unexpected character encountered while parsing value: <. Path '', line 0, position 0.
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.
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 value: line L column C (char N) |
| Gson | Use 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 $… |
| JSON5 | JSON5: invalid character '<' at 1:1 |
| JSON::PP | malformed JSON string, neither array, object, number, string or atom, at character offset N (before "…") |
| Jackson ObjectMapper | Unexpected character ('<' (code 60)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false') |
| JavaScriptCore JSON.parse | JSON Parse error: Unrecognized token '<' |
| Newtonsoft.Json JsonTextReader | Unexpected character encountered while parsing value: <. Path '', line L, position N. |
| Ruby JSON.parse | unexpected token at '…' |
| SpiderMonkey JSON.parse | JSON.parse: unexpected character at line L column C of the JSON data |
| System.Text.Json Deserialize | '<' is an invalid start of a value. Path: $ | LineNumber: L | BytePositionInLine: C. |
| System.Text.Json JsonDocument | '<' is an invalid start of a value. LineNumber: L | BytePositionInLine: C. |
| V8 JSON.parse | Unexpected token '<', "…"... is not valid JSON |
| encoding/json Unmarshal | invalid character '<' looking for beginning of value |
| hjson | Found EOF while looking for a key name (check your syntax) at line L,30 |
| json-bigint | Unexpected '<' |
| json_decode | Syntax error |
| orjson | unexpected character, expected a JSON value: line L column C (char N) |
| serde_json::from_str | expected value 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.