Class parse_error
Defined in File json.hpp
Inheritance Relationships
Base Types
public nlohmann::detail::exception
(Class exception)public nlohmann::detail::exception
(Class exception)
Class Documentation
-
class parse_error : public nlohmann::detail::exception, public nlohmann::detail::exception
exception indicating a parse error
This exception is thrown by the library when a parse error occurs. Parse errors can occur during the deserialization of JSON text, CBOR, MessagePack, as well as when using JSON Patch.
Member byte holds the byte index of the last read character in the input file.
Exceptions have ids 1xx.
name / id
example message
description
json.exception.parse_error.101
parse error at 2: unexpected end of input; expected string literal
This error indicates a syntax error while deserializing a JSON text. The error message describes that an unexpected token (character) was encountered, and the member byte indicates the error position.
json.exception.parse_error.102
parse error at 14: missing or wrong low surrogate
JSON uses the
\uxxxx
format to describe Unicode characters. Code points above above 0xFFFF are split into two\uxxxx
entries (“surrogate pairs”). This error indicates that the surrogate pair is incomplete or contains an invalid code point.json.exception.parse_error.103
parse error: code points above 0x10FFFF are invalid
Unicode supports code points up to 0x10FFFF. Code points above 0x10FFFF are invalid.
json.exception.parse_error.104
parse error: JSON patch must be an array of objects
RFC 6902 requires a JSON Patch document to be a JSON document that represents an array of objects.
json.exception.parse_error.105
parse error: operation must have string member ‘op’
An operation of a JSON Patch document must contain exactly one “op” member, whose value indicates the operation to perform. Its value must be one of “add”, “remove”, “replace”, “move”, “copy”, or “test”; other values are errors.
json.exception.parse_error.106
parse error: array index ‘01’ must not begin with ‘0’
An array index in a JSON Pointer (RFC 6901) may be
0
or any number without a leading0
.json.exception.parse_error.107
parse error: JSON pointer must be empty or begin with ‘/’ - was: ‘foo’
A JSON Pointer must be a Unicode string containing a sequence of zero or more reference tokens, each prefixed by a
/
character.json.exception.parse_error.108
parse error: escape character ‘~’ must be followed with ‘0’ or ‘1’
In a JSON Pointer, only
~0
and~1
are valid escape sequences.json.exception.parse_error.109
parse error: array index ‘one’ is not a number
A JSON Pointer array index must be a number.
json.exception.parse_error.110
parse error at 1: cannot read 2 bytes from vector
When parsing CBOR or MessagePack, the byte vector ends before the complete value has been read.
json.exception.parse_error.112
parse error at 1: error reading CBOR; last byte: 0xF8
Not all types of CBOR or MessagePack are supported. This exception occurs if an unsupported byte was read.
json.exception.parse_error.113
parse error at 2: expected a CBOR string; last byte: 0x98
While parsing a map key, a value that is not a string has been read.
json.exception.parse_error.114
parse error: Unsupported BSON record type 0x0F
The parsing of the corresponding BSON record type is not implemented (yet).
@liveexample{The following code shows how a
parse_error
exception can be caught.,parse_error}This exception is thrown by the library when a parse error occurs. Parse errors can occur during the deserialization of JSON text, CBOR, MessagePack, as well as when using JSON Patch.
See also
- exception for the base class of the library exceptions
See also
- invalid_iterator for exceptions indicating errors with iterators
See also
- type_error for exceptions indicating executing a member function with a wrong type
See also
- out_of_range for exceptions indicating access out of the defined range
See also
- other_error for exceptions indicating other library errors
- Since
version 3.0.0
Member byte holds the byte index of the last read character in the input file.
Exceptions have ids 1xx.
name / id
example message
description
json.exception.parse_error.101
parse error at 2: unexpected end of input; expected string literal
This error indicates a syntax error while deserializing a JSON text. The error message describes that an unexpected token (character) was encountered, and the member byte indicates the error position.
json.exception.parse_error.102
parse error at 14: missing or wrong low surrogate
JSON uses the
\uxxxx
format to describe Unicode characters. Code points above above 0xFFFF are split into two\uxxxx
entries (“surrogate pairs”). This error indicates that the surrogate pair is incomplete or contains an invalid code point.json.exception.parse_error.103
parse error: code points above 0x10FFFF are invalid
Unicode supports code points up to 0x10FFFF. Code points above 0x10FFFF are invalid.
json.exception.parse_error.104
parse error: JSON patch must be an array of objects
RFC 6902 requires a JSON Patch document to be a JSON document that represents an array of objects.
json.exception.parse_error.105
parse error: operation must have string member ‘op’
An operation of a JSON Patch document must contain exactly one “op” member, whose value indicates the operation to perform. Its value must be one of “add”, “remove”, “replace”, “move”, “copy”, or “test”; other values are errors.
json.exception.parse_error.106
parse error: array index ‘01’ must not begin with ‘0’
An array index in a JSON Pointer (RFC 6901) may be
0
or any number without a leading0
.json.exception.parse_error.107
parse error: JSON pointer must be empty or begin with ‘/’ - was: ‘foo’
A JSON Pointer must be a Unicode string containing a sequence of zero or more reference tokens, each prefixed by a
/
character.json.exception.parse_error.108
parse error: escape character ‘~’ must be followed with ‘0’ or ‘1’
In a JSON Pointer, only
~0
and~1
are valid escape sequences.json.exception.parse_error.109
parse error: array index ‘one’ is not a number
A JSON Pointer array index must be a number.
json.exception.parse_error.110
parse error at 1: cannot read 2 bytes from vector
When parsing CBOR or MessagePack, the byte vector ends before the complete value has been read.
json.exception.parse_error.112
parse error at 1: error reading CBOR; last byte: 0xF8
Not all types of CBOR or MessagePack are supported. This exception occurs if an unsupported byte was read.
json.exception.parse_error.113
parse error at 2: expected a CBOR string; last byte: 0x98
While parsing a map key, a value that is not a string has been read.
json.exception.parse_error.114
parse error: Unsupported BSON record type 0x0F
The parsing of the corresponding BSON record type is not implemented (yet).
json.exception.parse_error.115
parse error at byte 5: syntax error while parsing UBJSON high-precision number: invalid number text: 1A
A UBJSON high-precision number could not be parsed.
@liveexample{The following code shows how a
parse_error
exception can be caught.,parse_error}See also
- exception for the base class of the library exceptions
See also
- invalid_iterator for exceptions indicating errors with iterators
See also
- type_error for exceptions indicating executing a member function with a wrong type
See also
- out_of_range for exceptions indicating access out of the defined range
See also
- other_error for exceptions indicating other library errors
- Since
version 3.0.0
Note
For an input with n bytes, 1 is the index of the first character and n+1 is the index of the terminating null byte or the end of file. This also holds true when reading a byte vector (CBOR or MessagePack).
Note
For an input with n bytes, 1 is the index of the first character and n+1 is the index of the terminating null byte or the end of file. This also holds true when reading a byte vector (CBOR or MessagePack).
Public Members
-
const std::size_t byte
byte index of the parse error
The byte index of the last read character in the input file.
Note
For an input with n bytes, 1 is the index of the first character and n+1 is the index of the terminating null byte or the end of file. This also holds true when reading a byte vector (CBOR or MessagePack).
Public Static Functions
-
static inline parse_error create(int id_, const position_t &pos, const std::string &what_arg)
create a parse error exception
- Parameters:
id_ – [in] the id of the exception
pos – [in] the position where the error occurred (or with chars_read_total=0 if the position cannot be determined)
what_arg – [in] the explanatory string
- Returns:
parse_error object
-
static inline parse_error create(int id_, std::size_t byte_, const std::string &what_arg)
-
static inline parse_error create(int id_, const position_t &pos, const std::string &what_arg)
create a parse error exception
- Parameters:
id_ – [in] the id of the exception
pos – [in] the position where the error occurred (or with chars_read_total=0 if the position cannot be determined)
what_arg – [in] the explanatory string
- Returns:
parse_error object
-
static inline parse_error create(int id_, std::size_t byte_, const std::string &what_arg)