nlohmann::detail::json_sax_dom_parser
json.hpp
typename BasicJsonType BasicJsonType
typename BasicJsonType::number_integer_t using nlohmann::detail::json_sax_dom_parser< BasicJsonType >::number_integer_t = typename BasicJsonType::number_integer_t number_integer_t
typename BasicJsonType::number_unsigned_t using nlohmann::detail::json_sax_dom_parser< BasicJsonType >::number_unsigned_t = typename BasicJsonType::number_unsigned_t number_unsigned_t
typename BasicJsonType::number_float_t using nlohmann::detail::json_sax_dom_parser< BasicJsonType >::number_float_t = typename BasicJsonType::number_float_t number_float_t
typename BasicJsonType::string_t using nlohmann::detail::json_sax_dom_parser< BasicJsonType >::string_t = typename BasicJsonType::string_t string_t
typename BasicJsonType::binary_t using nlohmann::detail::json_sax_dom_parser< BasicJsonType >::binary_t = typename BasicJsonType::binary_t binary_t
BasicJsonType & BasicJsonType& nlohmann::detail::json_sax_dom_parser< BasicJsonType >::root root

the parsed JSON value

std::vector< BasicJsonType * > std::vector<BasicJsonType*> nlohmann::detail::json_sax_dom_parser< BasicJsonType >::ref_stack ref_stack {}

stack to model hierarchy of values

BasicJsonType * BasicJsonType* nlohmann::detail::json_sax_dom_parser< BasicJsonType >::object_element object_element = nullptr

helper to hold the reference for the next object element

bool bool nlohmann::detail::json_sax_dom_parser< BasicJsonType >::errored errored = false

whether a syntax error occurred

const bool const bool nlohmann::detail::json_sax_dom_parser< BasicJsonType >::allow_exceptions allow_exceptions = true

whether to throw exceptions in case of errors

nlohmann::detail::json_sax_dom_parser< BasicJsonType >::json_sax_dom_parser
(BasicJsonType &r, const bool allow_exceptions_=true)
json_sax_dom_parser
BasicJsonType & r
const bool allow_exceptions_ true

r

reference to a JSON value that is manipulated while parsing

allow_exceptions_

whether parse errors yield exceptions

nlohmann::detail::json_sax_dom_parser< BasicJsonType >::json_sax_dom_parser
(const json_sax_dom_parser &)=delete
json_sax_dom_parser
const json_sax_dom_parser &
nlohmann::detail::json_sax_dom_parser< BasicJsonType >::json_sax_dom_parser
(json_sax_dom_parser &&)=default
json_sax_dom_parser
json_sax_dom_parser &&
json_sax_dom_parser & json_sax_dom_parser& nlohmann::detail::json_sax_dom_parser< BasicJsonType >::operator= (const json_sax_dom_parser &)=delete operator= const json_sax_dom_parser &
json_sax_dom_parser & json_sax_dom_parser& nlohmann::detail::json_sax_dom_parser< BasicJsonType >::operator= (json_sax_dom_parser &&)=default operator= json_sax_dom_parser &&
nlohmann::detail::json_sax_dom_parser< BasicJsonType >::~json_sax_dom_parser
()=default
~json_sax_dom_parser
bool bool nlohmann::detail::json_sax_dom_parser< BasicJsonType >::null () null
bool bool nlohmann::detail::json_sax_dom_parser< BasicJsonType >::boolean (bool val) boolean bool val
bool bool nlohmann::detail::json_sax_dom_parser< BasicJsonType >::number_integer (number_integer_t val) number_integer number_integer_t val
bool bool nlohmann::detail::json_sax_dom_parser< BasicJsonType >::number_unsigned (number_unsigned_t val) number_unsigned number_unsigned_t val
bool bool nlohmann::detail::json_sax_dom_parser< BasicJsonType >::number_float (number_float_t val, const string_t &) number_float number_float_t val const string_t &
bool bool nlohmann::detail::json_sax_dom_parser< BasicJsonType >::string (string_t &val) string string_t & val
bool bool nlohmann::detail::json_sax_dom_parser< BasicJsonType >::binary (binary_t &val) binary binary_t & val
bool bool nlohmann::detail::json_sax_dom_parser< BasicJsonType >::start_object (std::size_t len) start_object std::size_t len nlohmann::detail::out_of_range::create JSON_HEDLEY_UNLIKELY JSON_THROW nlohmann::to_string
bool bool nlohmann::detail::json_sax_dom_parser< BasicJsonType >::key (string_t &val) key string_t & val
bool bool nlohmann::detail::json_sax_dom_parser< BasicJsonType >::end_object () end_object
bool bool nlohmann::detail::json_sax_dom_parser< BasicJsonType >::start_array (std::size_t len) start_array std::size_t len nlohmann::detail::out_of_range::create JSON_HEDLEY_UNLIKELY JSON_THROW nlohmann::to_string
bool bool nlohmann::detail::json_sax_dom_parser< BasicJsonType >::end_array () end_array
class Exception
bool bool nlohmann::detail::json_sax_dom_parser< BasicJsonType >::parse_error (std::size_t, const std::string &, const Exception &ex) parse_error std::size_t const std::string & const Exception & ex JSON_THROW nlohmann::detail::parser< BasicJsonType, InputAdapterType >::parse
constexpr bool constexpr bool nlohmann::detail::json_sax_dom_parser< BasicJsonType >::is_errored () const is_errored JSON_HEDLEY_RETURNS_NON_NULL nlohmann::detail::parser< BasicJsonType, InputAdapterType >::parse
typename Value
JSON_HEDLEY_RETURNS_NON_NULL BasicJsonType * JSON_HEDLEY_RETURNS_NON_NULL BasicJsonType* nlohmann::detail::json_sax_dom_parser< BasicJsonType >::handle_value (Value &&v) handle_value Value && v

If the ref stack is empty, then the passed value will be the new root.

If the ref stack contains a value, then it is an array or an object to which we can add elements

JSON_ASSERT

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

BasicJsonType &
BasicJsonType *
T
std::vector< T >
+elements
std::vector< BasicJsonType *>
+elements
< BasicJsonType *>
nlohmann::detail::json_sax_dom_parser< BasicJsonType >
-root
-allow_exceptions
-errored
-object_element
-ref_stack
bool
- nlohmann::detail::json_sax_dom_parser
  allow_exceptions
- nlohmann::detail::json_sax_dom_parser
  binary
- nlohmann::detail::json_sax_dom_parser
  binary_t
- nlohmann::detail::json_sax_dom_parser
  boolean
- nlohmann::detail::json_sax_dom_parser
  end_array
- nlohmann::detail::json_sax_dom_parser
  end_object
- nlohmann::detail::json_sax_dom_parser
  errored
- nlohmann::detail::json_sax_dom_parser
  handle_value
- nlohmann::detail::json_sax_dom_parser
  is_errored
- nlohmann::detail::json_sax_dom_parser
  json_sax_dom_parser
- nlohmann::detail::json_sax_dom_parser
  json_sax_dom_parser
- nlohmann::detail::json_sax_dom_parser
  json_sax_dom_parser
- nlohmann::detail::json_sax_dom_parser
  key
- nlohmann::detail::json_sax_dom_parser
  null
- nlohmann::detail::json_sax_dom_parser
  number_float
- nlohmann::detail::json_sax_dom_parser
  number_float_t
- nlohmann::detail::json_sax_dom_parser
  number_integer
- nlohmann::detail::json_sax_dom_parser
  number_integer_t
- nlohmann::detail::json_sax_dom_parser
  number_unsigned
- nlohmann::detail::json_sax_dom_parser
  number_unsigned_t
- nlohmann::detail::json_sax_dom_parser
  object_element
- nlohmann::detail::json_sax_dom_parser
  operator=
- nlohmann::detail::json_sax_dom_parser
  operator=
- nlohmann::detail::json_sax_dom_parser
  parse_error
- nlohmann::detail::json_sax_dom_parser
  ref_stack
- nlohmann::detail::json_sax_dom_parser
  root
- nlohmann::detail::json_sax_dom_parser
  start_array
- nlohmann::detail::json_sax_dom_parser
  start_object
- nlohmann::detail::json_sax_dom_parser
  string
- nlohmann::detail::json_sax_dom_parser
  string_t
- nlohmann::detail::json_sax_dom_parser
  ~json_sax_dom_parser