Union basic_json::json_value
Defined in File json.hpp
Nested Relationships
This union is a nested type of Template Class basic_json.
Union Documentation
-
union json_value
a JSON value
The actual storage for a JSON value of the basic_json class. This union combines the different storage types for the JSON value types defined in value_t.
JSON type
value_t type
used type
object
object
pointer to object_t
array
array
pointer to array_t
string
string
pointer to string_t
boolean
boolean
boolean_t
number
number_integer
number_integer_t
number
number_unsigned
number_unsigned_t
number
number_float
number_float_t
null
null
no value is stored
The actual storage for a JSON value of the basic_json class. This union combines the different storage types for the JSON value types defined in value_t.
- Since
version 1.0.0
JSON type
value_t type
used type
object
object
pointer to object_t
array
array
pointer to array_t
string
string
pointer to string_t
boolean
boolean
boolean_t
number
number_integer
number_integer_t
number
number_unsigned
number_unsigned_t
number
number_float
number_float_t
binary
binary
pointer to binary_t
null
null
no value is stored
- Since
version 1.0.0
Note
Variable-length types (objects, arrays, and strings) are stored as pointers. The size of the union should not exceed 64 bits if the default value types are used.
Note
Variable-length types (objects, arrays, and strings) are stored as pointers. The size of the union should not exceed 64 bits if the default value types are used.
Public Functions
-
json_value() = default
default constructor (for null values)
-
inline json_value(boolean_t v) noexcept
constructor for booleans
-
inline json_value(number_integer_t v) noexcept
constructor for numbers (integer)
-
inline json_value(number_unsigned_t v) noexcept
constructor for numbers (unsigned)
-
inline json_value(number_float_t v) noexcept
constructor for numbers (floating-point)
-
inline json_value(value_t t)
constructor for empty values of a given type
-
inline json_value(const string_t &value)
constructor for strings
-
inline json_value(string_t &&value)
constructor for rvalue strings
-
inline json_value(const object_t &value)
constructor for objects
-
inline json_value(object_t &&value)
constructor for rvalue objects
-
inline json_value(const array_t &value)
constructor for arrays
-
inline json_value(array_t &&value)
constructor for rvalue arrays
-
inline void destroy(value_t t) noexcept
-
json_value() = default
default constructor (for null values)
-
inline json_value(boolean_t v) noexcept
constructor for booleans
-
inline json_value(number_integer_t v) noexcept
constructor for numbers (integer)
-
inline json_value(number_unsigned_t v) noexcept
constructor for numbers (unsigned)
-
inline json_value(number_float_t v) noexcept
constructor for numbers (floating-point)
-
inline json_value(value_t t)
constructor for empty values of a given type
-
inline json_value(const string_t &value)
constructor for strings
-
inline json_value(string_t &&value)
constructor for rvalue strings
-
inline json_value(const object_t &value)
constructor for objects
-
inline json_value(object_t &&value)
constructor for rvalue objects
-
inline json_value(const array_t &value)
constructor for arrays
-
inline json_value(array_t &&value)
constructor for rvalue arrays
-
inline json_value(const typename binary_t::container_type &value)
constructor for binary arrays
-
inline json_value(typename binary_t::container_type &&value)
constructor for rvalue binary arrays
-
inline json_value(const binary_t &value)
constructor for binary arrays (internal type)
-
inline json_value(binary_t &&value)
constructor for rvalue binary arrays (internal type)
-
inline void destroy(value_t t) noexcept
Public Members
-
object_t *object
object (stored with pointer to save storage)
-
array_t *array
array (stored with pointer to save storage)
-
string_t *string
string (stored with pointer to save storage)
-
boolean_t boolean
boolean
-
number_integer_t number_integer
number (integer)
-
number_unsigned_t number_unsigned
number (unsigned integer)
-
number_float_t number_float
number (floating-point)
-
binary_t *binary
binary (stored with pointer to save storage)