![]() |
Eclipse SUMO - Simulation of Urban MObility
|
SAX implementation to create a JSON value from SAX events. More...
#include <json.hpp>
Public Types | |
| using | binary_t = typename BasicJsonType::binary_t |
| using | number_float_t = typename BasicJsonType::number_float_t |
| using | number_integer_t = typename BasicJsonType::number_integer_t |
| using | number_unsigned_t = typename BasicJsonType::number_unsigned_t |
| using | string_t = typename BasicJsonType::string_t |
Public Member Functions | |
| bool | binary (binary_t &val) |
| bool | boolean (bool val) |
| bool | end_array () |
| bool | end_object () |
| constexpr bool | is_errored () const |
| 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 | |
| bool | key (string_t &val) |
| bool | null () |
| bool | number_float (number_float_t val, const string_t &) |
| bool | number_integer (number_integer_t val) |
| bool | number_unsigned (number_unsigned_t val) |
| json_sax_dom_parser & | operator= (const json_sax_dom_parser &)=delete |
| json_sax_dom_parser & | operator= (json_sax_dom_parser &&)=default |
| template<class Exception> | |
| bool | parse_error (std::size_t, const std::string &, const Exception &ex) |
| bool | start_array (std::size_t len) |
| bool | start_object (std::size_t len) |
| bool | string (string_t &val) |
| ~json_sax_dom_parser ()=default | |
Private Member Functions | |
| template<typename Value> | |
| JSON_HEDLEY_RETURNS_NON_NULL BasicJsonType * | handle_value (Value &&v) |
Private Attributes | |
| const bool | allow_exceptions = true |
| whether to throw exceptions in case of errors | |
| bool | errored = false |
| whether a syntax error occurred | |
| BasicJsonType * | object_element = nullptr |
| helper to hold the reference for the next object element | |
| std::vector< BasicJsonType * > | ref_stack {} |
| stack to model hierarchy of values | |
| BasicJsonType & | root |
| the parsed JSON value | |
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 |
| 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 |
| [in,out] | r | reference to a JSON value that is manipulated while parsing |
| [in] | allow_exceptions_ | whether parse errors yield exceptions |
Definition at line 5862 of file json.hpp.
References allow_exceptions, nlohmann::BasicJsonType(), and root.
Referenced by json_sax_dom_parser(), json_sax_dom_parser(), operator=(), and operator=().
|
delete |
References json_sax_dom_parser().
|
default |
References json_sax_dom_parser().
|
default |
|
inline |
Definition at line 5909 of file json.hpp.
References handle_value().
|
inline |
Definition at line 5879 of file json.hpp.
References handle_value().
|
inline |
|
inline |
|
inlineprivate |
Definition at line 5987 of file json.hpp.
References nlohmann::BasicJsonType(), JSON_ASSERT, object_element, ref_stack, and root.
Referenced by binary(), boolean(), null(), number_float(), number_integer(), number_unsigned(), start_array(), start_object(), and string().
|
inlineconstexpr |
Definition at line 5973 of file json.hpp.
References errored.
Referenced by nlohmann::detail::parser< BasicJsonType, InputAdapterType >::parse().
|
inline |
Definition at line 5927 of file json.hpp.
References object_element, and ref_stack.
|
inline |
Definition at line 5873 of file json.hpp.
References handle_value().
|
inline |
Definition at line 5897 of file json.hpp.
References handle_value().
|
inline |
Definition at line 5885 of file json.hpp.
References handle_value().
|
inline |
Definition at line 5891 of file json.hpp.
References handle_value().
|
delete |
References json_sax_dom_parser().
|
default |
References json_sax_dom_parser().
|
inline |
Definition at line 5961 of file json.hpp.
References allow_exceptions, errored, and JSON_THROW.
Referenced by nlohmann::detail::parser< BasicJsonType, InputAdapterType >::parse().
|
inline |
Definition at line 5941 of file json.hpp.
References nlohmann::detail::out_of_range::create(), handle_value(), JSON_HEDLEY_UNLIKELY, JSON_THROW, and ref_stack.
|
inline |
Definition at line 5915 of file json.hpp.
References nlohmann::detail::out_of_range::create(), handle_value(), JSON_HEDLEY_UNLIKELY, JSON_THROW, and ref_stack.
|
inline |
Definition at line 5903 of file json.hpp.
References handle_value().
|
private |
whether to throw exceptions in case of errors
Definition at line 6018 of file json.hpp.
Referenced by json_sax_dom_parser(), and parse_error().
|
private |
whether a syntax error occurred
Definition at line 6016 of file json.hpp.
Referenced by is_errored(), and parse_error().
|
private |
helper to hold the reference for the next object element
Definition at line 6014 of file json.hpp.
Referenced by handle_value(), and key().
|
private |
stack to model hierarchy of values
Definition at line 6012 of file json.hpp.
Referenced by end_array(), end_object(), handle_value(), key(), start_array(), and start_object().
|
private |
the parsed JSON value
Definition at line 6010 of file json.hpp.
Referenced by handle_value(), and json_sax_dom_parser().