Ditto 4.8.0-rc.2
Loading...
Searching...
No Matches
json_sax< BasicJsonType > Struct Template Referenceabstract

SAX interface. More...

#include <json.hpp>

Public Types

using number_integer_t = typename BasicJsonType::number_integer_t
 
using number_unsigned_t = typename BasicJsonType::number_unsigned_t
 
using number_float_t = typename BasicJsonType::number_float_t
 
using string_t = typename BasicJsonType::string_t
 
using binary_t = typename BasicJsonType::binary_t
 

Public Member Functions

virtual bool null ()=0
 a null value was read
 
virtual bool boolean (bool val)=0
 a boolean value was read
 
virtual bool number_integer (number_integer_t val)=0
 an integer number was read
 
virtual bool number_unsigned (number_unsigned_t val)=0
 an unsigned integer number was read
 
virtual bool number_float (number_float_t val, const string_t &s)=0
 a floating-point number was read
 
virtual bool string (string_t &val)=0
 a string value was read
 
virtual bool binary (binary_t &val)=0
 a binary value was read
 
virtual bool start_object (std::size_t elements)=0
 the beginning of an object was read
 
virtual bool key (string_t &val)=0
 an object key was read
 
virtual bool end_object ()=0
 the end of an object was read
 
virtual bool start_array (std::size_t elements)=0
 the beginning of an array was read
 
virtual bool end_array ()=0
 the end of an array was read
 
virtual bool parse_error (std::size_t position, const std::string &last_token, const detail::exception &ex)=0
 a parse error occurred
 
 json_sax (const json_sax &)=default
 
 json_sax (json_sax &&) noexcept=default
 
json_saxoperator= (const json_sax &)=default
 
json_saxoperator= (json_sax &&) noexcept=default
 

Detailed Description

template<typename BasicJsonType>
struct json_sax< BasicJsonType >

SAX interface.

This class describes the SAX interface used by nlohmann::json::sax_parse. Each function is called in different situations while the input is parsed. The boolean return value informs the parser whether to continue processing the input.

Member Function Documentation

◆ binary()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::binary ( binary_t & val)
pure virtual

a binary value was read

Parameters
[in]valbinary value
Returns
whether parsing should proceed
Note
It is safe to move the passed binary value.

◆ boolean()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::boolean ( bool val)
pure virtual

a boolean value was read

Parameters
[in]valboolean value
Returns
whether parsing should proceed

◆ end_array()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::end_array ( )
pure virtual

the end of an array was read

Returns
whether parsing should proceed

◆ end_object()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::end_object ( )
pure virtual

the end of an object was read

Returns
whether parsing should proceed

◆ key()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::key ( string_t & val)
pure virtual

an object key was read

Parameters
[in]valobject key
Returns
whether parsing should proceed
Note
It is safe to move the passed string.

◆ null()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::null ( )
pure virtual

a null value was read

Returns
whether parsing should proceed

◆ number_float()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::number_float ( number_float_t val,
const string_t & s )
pure virtual

a floating-point number was read

Parameters
[in]valfloating-point value
[in]sraw token value
Returns
whether parsing should proceed

◆ number_integer()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::number_integer ( number_integer_t val)
pure virtual

an integer number was read

Parameters
[in]valinteger value
Returns
whether parsing should proceed

◆ number_unsigned()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::number_unsigned ( number_unsigned_t val)
pure virtual

an unsigned integer number was read

Parameters
[in]valunsigned integer value
Returns
whether parsing should proceed

◆ parse_error()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::parse_error ( std::size_t position,
const std::string & last_token,
const detail::exception & ex )
pure virtual

a parse error occurred

Parameters
[in]positionthe position in the input where the error occurs
[in]last_tokenthe last read token
[in]exan exception object describing the error
Returns
whether parsing should proceed (must return false)

◆ start_array()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::start_array ( std::size_t elements)
pure virtual

the beginning of an array was read

Parameters
[in]elementsnumber of array elements or -1 if unknown
Returns
whether parsing should proceed
Note
binary formats may report the number of elements

◆ start_object()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::start_object ( std::size_t elements)
pure virtual

the beginning of an object was read

Parameters
[in]elementsnumber of object elements or -1 if unknown
Returns
whether parsing should proceed
Note
binary formats may report the number of elements

◆ string()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::string ( string_t & val)
pure virtual

a string value was read

Parameters
[in]valstring value
Returns
whether parsing should proceed
Note
It is safe to move the passed string value.