Crossfire Server, Trunk
nlohmann::detail::parse_error Class Reference

exception indicating a parse error More...

#include <json.hpp>

+ Inheritance diagram for nlohmann::detail::parse_error:
+ Collaboration diagram for nlohmann::detail::parse_error:

Static Public Member Functions

template<typename BasicJsonType >
static parse_error create (int id_, const position_t &pos, const std::string &what_arg, const BasicJsonType &context)
 create a parse error exception More...
 
template<typename BasicJsonType >
static parse_error create (int id_, std::size_t byte_, const std::string &what_arg, const BasicJsonType &context)
 

Data Fields

const std::size_t byte
 byte index of the parse error More...
 
- Data Fields inherited from nlohmann::detail::exception
const int id
 the id of the exception More...
 

Private Member Functions

 parse_error (int id_, std::size_t byte_, const char *what_arg)
 

Static Private Member Functions

static std::string position_string (const position_t &pos)
 

Additional Inherited Members

- Public Member Functions inherited from nlohmann::detail::exception
const char * what () const noexcept override
 returns the explanatory string More...
 
- Protected Member Functions inherited from nlohmann::detail::exception
 exception (int id_, const char *what_arg)
 
- Static Protected Member Functions inherited from nlohmann::detail::exception
template<typename BasicJsonType >
static std::string diagnostics (const BasicJsonType &leaf_element)
 
static std::string name (const std::string &ename, int id_)
 

Detailed Description

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 leading 0.
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.
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).

@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
- invalid_iterator for exceptions indicating errors with iterators
- type_error for exceptions indicating executing a member function with a wrong type
- out_of_range for exceptions indicating access out of the defined range
- other_error for exceptions indicating other library errors
Since
version 3.0.0

Definition at line 2780 of file json.hpp.

Constructor & Destructor Documentation

◆ parse_error()

nlohmann::detail::parse_error::parse_error ( int  id_,
std::size_t  byte_,
const char *  what_arg 
)
inlineprivate

Definition at line 2821 of file json.hpp.

Referenced by create().

+ Here is the caller graph for this function:

Member Function Documentation

◆ create() [1/2]

template<typename BasicJsonType >
static parse_error nlohmann::detail::parse_error::create ( int  id_,
const position_t pos,
const std::string &  what_arg,
const BasicJsonType &  context 
)
inlinestatic

create a parse error exception

Parameters
[in]id_the id of the exception
[in]posthe position where the error occurred (or with chars_read_total=0 if the position cannot be determined)
[in]what_argthe explanatory string
Returns
parse_error object

Definition at line 2793 of file json.hpp.

References nlohmann::detail::position_t::chars_read_total, nlohmann::detail::exception::diagnostics(), nlohmann::detail::exception::name(), parse_error(), and position_string().

Referenced by nlohmann::json_pointer< BasicJsonType >::array_index(), nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_bson_binary(), nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_bson_string(), nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_cbor_binary(), nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_cbor_string(), nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_msgpack_string(), nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_ubjson_high_precision_number(), nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_ubjson_size_type(), nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_ubjson_size_value(), nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_ubjson_string(), nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_ubjson_value(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::parse(), nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::parse_bson_element_internal(), nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::parse_cbor_internal(), nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::parse_msgpack_internal(), nlohmann::basic_json::patch(), nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::sax_parse(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::sax_parse(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::sax_parse_internal(), nlohmann::json_pointer< BasicJsonType >::split(), and nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::unexpect_eof().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ create() [2/2]

template<typename BasicJsonType >
static parse_error nlohmann::detail::parse_error::create ( int  id_,
std::size_t  byte_,
const std::string &  what_arg,
const BasicJsonType &  context 
)
inlinestatic

Definition at line 2801 of file json.hpp.

References nlohmann::detail::exception::diagnostics(), nlohmann::detail::exception::name(), parse_error(), and nlohmann::to_string().

+ Here is the call graph for this function:

◆ position_string()

static std::string nlohmann::detail::parse_error::position_string ( const position_t pos)
inlinestaticprivate

Definition at line 2824 of file json.hpp.

References nlohmann::detail::position_t::chars_read_current_line, nlohmann::detail::position_t::lines_read, and nlohmann::to_string().

Referenced by create().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ byte

const std::size_t nlohmann::detail::parse_error::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).

Definition at line 2818 of file json.hpp.


The documentation for this class was generated from the following file: