SAX implementation to create a JSON value from SAX events. More...
#include <json.h>
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.
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 | binary_t = typename BasicJsonType::binary_t |
Public Member Functions | |
json_sax_dom_parser (BasicJsonType &r, const bool allow_exceptions_=true) | |
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 | |
bool | null () |
bool | boolean (bool val) |
bool | number_integer (number_integer_t val) |
bool | number_unsigned (number_unsigned_t val) |
bool | number_float (number_float_t val, const string_t &) |
bool | string (string_t &val) |
bool | binary (binary_t &val) |
bool | start_object (std::size_t len) |
bool | key (string_t &val) |
bool | end_object () |
bool | start_array (std::size_t len) |
bool | end_array () |
template<class Exception > | |
bool | parse_error (std::size_t, const std::string &, const Exception &ex) |
constexpr bool | is_errored () const |
using nlohmann::detail::json_sax_dom_parser< BasicJsonType >::binary_t = typename BasicJsonType::binary_t |
using nlohmann::detail::json_sax_dom_parser< BasicJsonType >::number_float_t = typename BasicJsonType::number_float_t |
using nlohmann::detail::json_sax_dom_parser< BasicJsonType >::number_integer_t = typename BasicJsonType::number_integer_t |
using nlohmann::detail::json_sax_dom_parser< BasicJsonType >::number_unsigned_t = typename BasicJsonType::number_unsigned_t |
using nlohmann::detail::json_sax_dom_parser< BasicJsonType >::string_t = typename BasicJsonType::string_t |
|
inlineexplicit |
|
delete |
|
default |
|
default |
|
inline |
Definition at line 5389 of file json.h.
References nlohmann::detail::json_sax_dom_parser< BasicJsonType >::handle_value().
|
inline |
Definition at line 5359 of file json.h.
References nlohmann::detail::json_sax_dom_parser< BasicJsonType >::handle_value().
|
inline |
Definition at line 5434 of file json.h.
References nlohmann::detail::json_sax_dom_parser< BasicJsonType >::ref_stack.
|
inline |
Definition at line 5415 of file json.h.
References nlohmann::detail::json_sax_dom_parser< BasicJsonType >::ref_stack.
|
inlineprivate |
Definition at line 5467 of file json.h.
References nlohmann::detail::JSON_ASSERT(), nlohmann::detail::json_sax_dom_parser< BasicJsonType >::object_element, nlohmann::detail::json_sax_dom_parser< BasicJsonType >::ref_stack, nlohmann::detail::json_sax_dom_parser< BasicJsonType >::root, and nlohmann::detail::dtoa_impl::v.
Referenced by nlohmann::detail::json_sax_dom_parser< BasicJsonType >::binary(), nlohmann::detail::json_sax_dom_parser< BasicJsonType >::boolean(), nlohmann::detail::json_sax_dom_parser< BasicJsonType >::null(), nlohmann::detail::json_sax_dom_parser< BasicJsonType >::number_float(), nlohmann::detail::json_sax_dom_parser< BasicJsonType >::number_integer(), nlohmann::detail::json_sax_dom_parser< BasicJsonType >::number_unsigned(), nlohmann::detail::json_sax_dom_parser< BasicJsonType >::start_array(), nlohmann::detail::json_sax_dom_parser< BasicJsonType >::start_object(), and nlohmann::detail::json_sax_dom_parser< BasicJsonType >::string().
|
inlineconstexpr |
Definition at line 5453 of file json.h.
References nlohmann::detail::json_sax_dom_parser< BasicJsonType >::errored.
Referenced by nlohmann::detail::parser< BasicJsonType, InputAdapterType >::parse().
|
inline |
Definition at line 5408 of file json.h.
References nlohmann::detail::json_sax_dom_parser< BasicJsonType >::object_element, and nlohmann::detail::json_sax_dom_parser< BasicJsonType >::ref_stack.
|
inline |
Definition at line 5353 of file json.h.
References nlohmann::detail::json_sax_dom_parser< BasicJsonType >::handle_value().
|
inline |
Definition at line 5377 of file json.h.
References nlohmann::detail::json_sax_dom_parser< BasicJsonType >::handle_value().
|
inline |
Definition at line 5365 of file json.h.
References nlohmann::detail::json_sax_dom_parser< BasicJsonType >::handle_value().
|
inline |
Definition at line 5371 of file json.h.
References nlohmann::detail::json_sax_dom_parser< BasicJsonType >::handle_value().
|
delete |
|
default |
|
inline |
Definition at line 5441 of file json.h.
References nlohmann::detail::json_sax_dom_parser< BasicJsonType >::allow_exceptions, and nlohmann::detail::json_sax_dom_parser< BasicJsonType >::errored.
Referenced by nlohmann::detail::parser< BasicJsonType, InputAdapterType >::parse().
|
inline |
|
inline |
|
inline |
Definition at line 5383 of file json.h.
References nlohmann::detail::json_sax_dom_parser< BasicJsonType >::handle_value().
|
private |
whether to throw exceptions in case of errors
Definition at line 5498 of file json.h.
Referenced by nlohmann::detail::json_sax_dom_parser< BasicJsonType >::parse_error().
|
private |
whether a syntax error occurred
Definition at line 5496 of file json.h.
Referenced by nlohmann::detail::json_sax_dom_parser< BasicJsonType >::is_errored(), and nlohmann::detail::json_sax_dom_parser< BasicJsonType >::parse_error().
|
private |
helper to hold the reference for the next object element
Definition at line 5494 of file json.h.
Referenced by nlohmann::detail::json_sax_dom_parser< BasicJsonType >::handle_value(), and nlohmann::detail::json_sax_dom_parser< BasicJsonType >::key().
|
private |
stack to model hierarchy of values
Definition at line 5492 of file json.h.
Referenced by nlohmann::detail::json_sax_dom_parser< BasicJsonType >::end_array(), nlohmann::detail::json_sax_dom_parser< BasicJsonType >::end_object(), nlohmann::detail::json_sax_dom_parser< BasicJsonType >::handle_value(), nlohmann::detail::json_sax_dom_parser< BasicJsonType >::key(), nlohmann::detail::json_sax_dom_parser< BasicJsonType >::start_array(), and nlohmann::detail::json_sax_dom_parser< BasicJsonType >::start_object().
|
private |
the parsed JSON value
Definition at line 5490 of file json.h.
Referenced by nlohmann::detail::json_sax_dom_parser< BasicJsonType >::handle_value().