Template Class json_sax_dom_parser
Defined in File json.hpp
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 start_object(std::size_t len)
-
inline bool end_object()
-
inline bool start_array(std::size_t len)
-
inline bool end_array()
-
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 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