basic_staj_event.md

July 8, 2024 ยท View on GitHub

jsoncons::basic_staj_event

#include <jsoncons/staj_cursor.hpp>

template <typename CharT>
class basic_staj_event

A JSON-like parse event.

Aliases for common character types are provided:

TypeDefinition
staj_eventbasic_staj_event<char>
wstaj_eventbasic_staj_event<wchar_t>

The event_type() function returns the event type. You can use the get<T>() function to access a string, number, or boolean value.

Event typeSample dataValid accessors
begin_object
end_object
begin_array
end_array
key"foo"get<std::string>()
get<jsoncons::string_view>
get<std::string_view>()
string_value"1000"get<std::string>()
get<jsoncons::string_view>
get<std::string_view>()
get<int>()
get<unsigned>()
byte_string_value0x660x6F0x6Fget<std::string>()
get<jsoncons::byte_string>()
int64_value-1000get<std::string>()
get<int>()
get<long>
get<int64_t>()
uint64_value1000get<std::string>()
get<int>()
get<unsigned>()
get<int64_t>()
get<uint64_t>()
half_value1.5 (as double)get<std::string>()
get<uint16_t>()
get<double>()
double_value125.72get<std::string>()
get<double>()
bool_valuetrueget<std::string>()
get<bool>()
null_valueget<std::string>()

Member functions

staj_event_type event_type() const noexcept;

Returns a staj_event_type for this event.

semantic_tag tag() const noexcept;

Returns a semantic_tag for this event.

uint64_t ext_tag() const

If tag() == semantic_tag::ext, returns a format specific tag associated with a byte string value, otherwise return 0. An example is a MessagePack type in the range 0-127 associated with the MessagePack ext format family, or a CBOR tag preceeding a byte string.

size_t size() const

If event_type() is a staj_event_type::key or a staj_event_type::string_value or a staj_event_type::byte_string_value, returns the size of the key or string or byte string value. If event_type() is a staj_event_type::begin_object or a staj_event_type::begin_array, returns the size of the object or array if known, otherwise 0. For all other event types, returns 0.

template <typename T,typename... Args>
T get() const;

Attempts to convert the json value to the template value type.

template <typename T,typename... Args>
T get(std::error_code& ec) const;

Attempts to convert the json value to the template value type.