Template
Public Types | Public Member Functions | List of all members
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 ()=default
 
 json_sax (const json_sax &)=default
 
 json_sax (json_sax &&) noexcept=default
 
json_saxoperator= (const json_sax &)=default
 
json_saxoperator= (json_sax &&) noexcept=default
 
virtual ~json_sax ()=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.

Definition at line 6603 of file json.hpp.

Member Typedef Documentation

◆ binary_t

template<typename BasicJsonType >
using json_sax< BasicJsonType >::binary_t = typename BasicJsonType::binary_t

Definition at line 6609 of file json.hpp.

◆ number_float_t

template<typename BasicJsonType >
using json_sax< BasicJsonType >::number_float_t = typename BasicJsonType::number_float_t

Definition at line 6607 of file json.hpp.

◆ number_integer_t

template<typename BasicJsonType >
using json_sax< BasicJsonType >::number_integer_t = typename BasicJsonType::number_integer_t

Definition at line 6605 of file json.hpp.

◆ number_unsigned_t

template<typename BasicJsonType >
using json_sax< BasicJsonType >::number_unsigned_t = typename BasicJsonType::number_unsigned_t

Definition at line 6606 of file json.hpp.

◆ string_t

template<typename BasicJsonType >
using json_sax< BasicJsonType >::string_t = typename BasicJsonType::string_t

Definition at line 6608 of file json.hpp.

Constructor & Destructor Documentation

◆ json_sax() [1/3]

template<typename BasicJsonType >
json_sax< BasicJsonType >::json_sax ( )
default

◆ json_sax() [2/3]

template<typename BasicJsonType >
json_sax< BasicJsonType >::json_sax ( const json_sax< BasicJsonType > &  )
default

◆ json_sax() [3/3]

template<typename BasicJsonType >
json_sax< BasicJsonType >::json_sax ( json_sax< BasicJsonType > &&  )
defaultnoexcept

◆ ~json_sax()

template<typename BasicJsonType >
virtual json_sax< BasicJsonType >::~json_sax ( )
virtualdefault

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

◆ operator=() [1/2]

template<typename BasicJsonType >
json_sax & json_sax< BasicJsonType >::operator= ( const json_sax< BasicJsonType > &  )
default

◆ operator=() [2/2]

template<typename BasicJsonType >
json_sax & json_sax< BasicJsonType >::operator= ( json_sax< BasicJsonType > &&  )
defaultnoexcept

◆ 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.

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