Template Class json_sax_dom_parser

Class Documentation

template<typename BasicJsonType>
class json_sax_dom_parser

SAX implementation to create a JSON value from SAX events.

This class implements the json_sax interface and processes the SAX events to create a JSON value which makes it basically a DOM parser. The structure or hierarchy of the JSON value is managed by the stack ref_stack which contains a pointer to the respective array or object for each recursion depth.

After successful parsing, the value that is passed by reference to the constructor contains the parsed value.

Template Parameters:

BasicJsonType – the JSON type

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 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 Functions

inline explicit json_sax_dom_parser(BasicJsonType &r, const bool allow_exceptions_ = true)
Parameters:
  • r[inout] reference to a JSON value that is manipulated while parsing

  • allow_exceptions_[in] whether parse errors yield exceptions

json_sax_dom_parser(const json_sax_dom_parser&) = delete
json_sax_dom_parser(json_sax_dom_parser&&) = default
json_sax_dom_parser &operator=(const json_sax_dom_parser&) = delete
json_sax_dom_parser &operator=(json_sax_dom_parser&&) = default
~json_sax_dom_parser() = default
inline bool null()
inline bool boolean(bool val)
inline bool number_integer(number_integer_t val)
inline bool number_unsigned(number_unsigned_t val)
inline bool number_float(number_float_t val, const string_t&)
inline bool string(string_t &val)
inline bool start_object(std::size_t len)
inline bool key(string_t &val)
inline bool end_object()
inline bool start_array(std::size_t len)
inline bool end_array()
inline bool parse_error(std::size_t, const std::string&, const detail::exception &ex)
inline constexpr bool is_errored() const
inline explicit json_sax_dom_parser(BasicJsonType &r, const bool allow_exceptions_ = true)
Parameters:
  • r[inout] reference to a JSON value that is manipulated while parsing

  • allow_exceptions_[in] whether parse errors yield exceptions

json_sax_dom_parser(const json_sax_dom_parser&) = delete
json_sax_dom_parser(json_sax_dom_parser&&) = default
json_sax_dom_parser &operator=(const json_sax_dom_parser&) = delete
json_sax_dom_parser &operator=(json_sax_dom_parser&&) = default
~json_sax_dom_parser() = default
inline bool null()
inline bool boolean(bool val)
inline bool number_integer(number_integer_t val)
inline bool number_unsigned(number_unsigned_t val)
inline bool number_float(number_float_t val, const string_t&)
inline bool string(string_t &val)
inline bool binary(binary_t &val)
inline bool start_object(std::size_t len)
inline bool key(string_t &val)
inline bool end_object()
inline bool start_array(std::size_t len)
inline bool end_array()
template<class Exception>
inline bool parse_error(std::size_t, const std::string&, const Exception &ex)
inline constexpr bool is_errored() const