namespace for Niels Lohmann More...
#include <json.hpp>
Public Types | |
using | cbor_tag_handler_t = detail::cbor_tag_handler_t |
how to treat CBOR tags More... | |
using | error_handler_t = detail::error_handler_t |
how to treat decoding errors More... | |
using | initializer_list_t = std::initializer_list< detail::json_ref< basic_json > > |
helper type for initializer lists of basic_json values More... | |
using | input_format_t = detail::input_format_t |
using | json_pointer = ::nlohmann::json_pointer< StringType > |
JSON Pointer, see nlohmann::json_pointer. More... | |
using | json_sax_t = json_sax< basic_json > |
SAX interface type, see nlohmann::json_sax. More... | |
template<typename T , typename SFINAE > | |
using | json_serializer = JSONSerializer< T, SFINAE > |
using | parse_event_t = detail::parse_event_t |
parser event types More... | |
using | parser_callback_t = detail::parser_callback_t< basic_json > |
per-element parser callback type More... | |
using | value_t = detail::value_t |
Public Member Functions | |
data () noexcept=default | |
data (const data &) noexcept=delete | |
data (const value_t v) | |
data (data &&) noexcept=default | |
data (size_type cnt, const basic_json &val) | |
data & | operator= (const data &) noexcept=delete |
data & | operator= (data &&) noexcept=delete |
const JSON_HEDLEY_RETURNS_NON_NULL char * | type_name () const noexcept |
return the type as string More... | |
~data () noexcept | |
Static Public Member Functions | |
static allocator_type | get_allocator () |
returns the allocator associated with the container More... | |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | meta () |
returns version information on the library More... | |
template<typename SAX > | |
static bool | sax_parse (detail::span_input_adapter &&i, SAX *sax, input_format_t format=input_format_t::json, const bool strict=true, const bool ignore_comments=false) |
generate SAX events More... | |
JSON_PRIVATE_UNLESS_TESTED const_reference bool static SAX bool | sax_parse (InputType &&i, SAX *sax, input_format_t format=input_format_t::json, const bool strict=true, const bool ignore_comments=false) |
template<class IteratorType , class SAX > | |
static bool | sax_parse (IteratorType first, IteratorType last, SAX *sax, input_format_t format=input_format_t::json, const bool strict=true, const bool ignore_comments=false) |
generate SAX events More... | |
Public Attributes | |
JSON_PRIVATE_UNLESS_TESTED | __pad4__: struct data { value_t m_type = value_t::null |
data | m_data = {} |
json_value | m_value = {} |
the value of the current element More... | |
Private Types | |
using | basic_json_t = NLOHMANN_BASIC_JSON_TPL |
workaround type for MSVC More... | |
template<typename InputType > | |
using | binary_reader = ::nlohmann::detail::binary_reader< basic_json, InputType > |
template<typename CharType > | |
using | binary_writer = ::nlohmann::detail::binary_writer< basic_json, CharType > |
template<typename BasicJsonType > | |
using | internal_iterator = ::nlohmann::detail::internal_iterator< BasicJsonType > |
template<typename BasicJsonType > | |
using | iter_impl = ::nlohmann::detail::iter_impl< BasicJsonType > |
template<typename Iterator > | |
using | iteration_proxy = ::nlohmann::detail::iteration_proxy< Iterator > |
using | json_base_class_t = ::nlohmann::detail::json_base_class< CustomBaseClass > |
template<typename Base > | |
using | json_reverse_iterator = ::nlohmann::detail::json_reverse_iterator< Base > |
template<typename CharType > | |
using | output_adapter_t = ::nlohmann::detail::output_adapter_t< CharType > |
using | primitive_iterator_t = ::nlohmann::detail::primitive_iterator_t |
Private Member Functions | |
void | assert_invariant (bool check_parents=true) const noexcept |
checks the class invariants More... | |
void | destroy (value_t t) |
boolean_t | get_impl (boolean_t *) const |
get a boolean (explicit) More... | |
array_t * | get_impl_ptr (array_t *) noexcept |
get a pointer to the value (array) More... | |
binary_t * | get_impl_ptr (binary_t *) noexcept |
get a pointer to the value (binary) More... | |
boolean_t * | get_impl_ptr (boolean_t *) noexcept |
get a pointer to the value (boolean) More... | |
constexpr const array_t * | get_impl_ptr (const array_t *) const noexcept |
get a pointer to the value (array) More... | |
constexpr const binary_t * | get_impl_ptr (const binary_t *) const noexcept |
get a pointer to the value (binary) More... | |
constexpr const boolean_t * | get_impl_ptr (const boolean_t *) const noexcept |
get a pointer to the value (boolean) More... | |
constexpr const number_float_t * | get_impl_ptr (const number_float_t *) const noexcept |
get a pointer to the value (floating-point number) More... | |
constexpr const number_integer_t * | get_impl_ptr (const number_integer_t *) const noexcept |
get a pointer to the value (integer number) More... | |
constexpr const number_unsigned_t * | get_impl_ptr (const number_unsigned_t *) const noexcept |
get a pointer to the value (unsigned number) More... | |
constexpr const object_t * | get_impl_ptr (const object_t *) const noexcept |
get a pointer to the value (object) More... | |
constexpr const string_t * | get_impl_ptr (const string_t *) const noexcept |
get a pointer to the value (string) More... | |
number_float_t * | get_impl_ptr (number_float_t *) noexcept |
get a pointer to the value (floating-point number) More... | |
number_integer_t * | get_impl_ptr (number_integer_t *) noexcept |
get a pointer to the value (integer number) More... | |
number_unsigned_t * | get_impl_ptr (number_unsigned_t *) noexcept |
get a pointer to the value (unsigned number) More... | |
object_t * | get_impl_ptr (object_t *) noexcept |
get a pointer to the value (object) More... | |
string_t * | get_impl_ptr (string_t *) noexcept |
get a pointer to the value (string) More... | |
json_value ()=default | |
default constructor (for null values) More... | |
json_value (array_t &&value) | |
constructor for rvalue arrays More... | |
json_value (binary_t &&value) | |
constructor for rvalue binary arrays (internal type) More... | |
json_value (boolean_t v) noexcept | |
constructor for booleans More... | |
json_value (const array_t &value) | |
constructor for arrays More... | |
json_value (const binary_t &value) | |
constructor for binary arrays (internal type) More... | |
json_value (const object_t &value) | |
constructor for objects More... | |
json_value (const string_t &value) | |
constructor for strings More... | |
json_value (const typename binary_t::container_type &value) | |
constructor for binary arrays More... | |
json_value (number_float_t v) noexcept | |
constructor for numbers (floating-point) More... | |
json_value (number_integer_t v) noexcept | |
constructor for numbers (integer) More... | |
json_value (number_unsigned_t v) noexcept | |
constructor for numbers (unsigned) More... | |
json_value (object_t &&value) | |
constructor for rvalue objects More... | |
json_value (string_t &&value) | |
constructor for rvalue strings More... | |
json_value (typename binary_t::container_type &&value) | |
constructor for rvalue binary arrays More... | |
json_value (value_t t) | |
constructor for empty values of a given type More... | |
template<typename InputAdapterType > | |
static ::nlohmann::detail::parser< basic_json, InputAdapterType > | parser (InputAdapterType adapter, detail::parser_callback_t< basic_json >cb=nullptr, const bool allow_exceptions=true, const bool ignore_comments=false) |
reference | set_parent (reference j, std::size_t old_capacity=static_cast< std::size_t >(-1)) |
void | set_parents () |
iterator | set_parents (iterator it, typename iterator::difference_type count_set_parents) |
Static Private Member Functions | |
template<typename T , typename... Args> | |
static JSON_HEDLEY_RETURNS_NON_NULL T * | create (Args &&... args) |
helper for exception-safe object creation More... | |
template<typename ReferenceType , typename ThisType > | |
static ReferenceType | get_ref_impl (ThisType &obj) |
helper function to implement get_ref() More... | |
Private Attributes | |
JSON_PRIVATE_UNLESS_TESTED | __pad0__: using lexer = ::nlohmann::detail::lexer_base<basic_json> |
JSON_PRIVATE_UNLESS_TESTED | __pad1__: using serializer = ::nlohmann::detail::serializer<basic_json> |
JSON_PRIVATE_UNLESS_TESTED | __pad2__: union json_value { object_t* object |
array_t * | array |
array (stored with pointer to save storage) More... | |
binary_t * | binary |
binary (stored with pointer to save storage) More... | |
boolean_t | boolean |
boolean More... | |
number_float_t | number_float |
number (floating-point) More... | |
number_integer_t | number_integer |
number (integer) More... | |
number_unsigned_t | number_unsigned |
number (unsigned integer) More... | |
string_t * | string |
string (stored with pointer to save storage) More... | |
Friends | |
template<typename BasicJsonType , typename InputType , typename SAX > | |
class | ::nlohmann::detail::binary_reader |
template<typename BasicJsonType , typename CharType > | |
class | ::nlohmann::detail::binary_writer |
class | ::nlohmann::detail::exception |
template<typename BasicJsonType > | |
class | ::nlohmann::detail::iter_impl |
template<typename BasicJsonType > | |
class | ::nlohmann::detail::json_sax_dom_callback_parser |
template<typename BasicJsonType > | |
class | ::nlohmann::detail::json_sax_dom_parser |
template<typename BasicJsonType , typename InputType > | |
class | ::nlohmann::detail::parser |
template<typename > | |
class | ::nlohmann::json_pointer |
template<detail::value_t > | |
struct | detail::external_constructor |
std::istream & | operator<< (basic_json &j, std::istream &i) |
deserialize from stream More... | |
std::istream & | operator>> (std::istream &i, basic_json &j) |
deserialize from stream More... | |
exceptions | |
using | exception = detail::exception |
using | parse_error = detail::parse_error |
using | invalid_iterator = detail::invalid_iterator |
using | type_error = detail::type_error |
using | out_of_range = detail::out_of_range |
using | other_error = detail::other_error |
container types | |
The canonic container types to use basic_json like any other STL container. | |
using | value_type = basic_json |
the type of elements in a basic_json container More... | |
using | reference = value_type & |
the type of an element reference More... | |
using | const_reference = const value_type & |
the type of an element const reference More... | |
using | difference_type = std::ptrdiff_t |
a type to represent differences between iterators More... | |
using | size_type = std::size_t |
a type to represent container sizes More... | |
using | allocator_type = AllocatorType< basic_json > |
the allocator type More... | |
using | pointer = typename std::allocator_traits< allocator_type >::pointer |
the type of an element pointer More... | |
using | const_pointer = typename std::allocator_traits< allocator_type >::const_pointer |
the type of an element const pointer More... | |
using | iterator = iter_impl< basic_json > |
an iterator for a basic_json container More... | |
using | const_iterator = iter_impl< const basic_json > |
a const iterator for a basic_json container More... | |
using | reverse_iterator = json_reverse_iterator< typename basic_json::iterator > |
a reverse iterator for a basic_json container More... | |
using | const_reverse_iterator = json_reverse_iterator< typename basic_json::const_iterator > |
a const reverse iterator for a basic_json container More... | |
JSON value data types | |
The data types to store a JSON value. These types are derived from the template arguments passed to class basic_json. | |
using | default_object_comparator_t = std::less< StringType > |
default object key comparator type The actual object key comparator type (object_comparator_t) may be different. More... | |
using | object_t = ObjectType< StringType, basic_json, default_object_comparator_t, AllocatorType< std::pair< const StringType, basic_json > >> |
a type for an object More... | |
using | array_t = ArrayType< basic_json, AllocatorType< basic_json > > |
a type for an array More... | |
using | string_t = StringType |
a type for a string More... | |
using | boolean_t = BooleanType |
a type for a boolean More... | |
using | number_integer_t = NumberIntegerType |
a type for a number (integer) More... | |
using | number_unsigned_t = NumberUnsignedType |
a type for a number (unsigned) More... | |
using | number_float_t = NumberFloatType |
a type for a number (floating-point) More... | |
using | binary_t = nlohmann::byte_container_with_subtype< BinaryType > |
a type for a packed binary type More... | |
using | object_comparator_t = detail::actual_object_comparator_t< basic_json > |
object key comparator type More... | |
constructors and destructors | |
Constructors of class basic_json, copy/move constructor, copy assignment, static functions creating objects, and the destructor. | |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | binary (const typename binary_t::container_type &init) |
explicitly create a binary array (without subtype) More... | |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | binary (const typename binary_t::container_type &init, typename binary_t::subtype_type subtype) |
explicitly create a binary array (with subtype) More... | |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | binary (typename binary_t::container_type &&init) |
explicitly create a binary array More... | |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | binary (typename binary_t::container_type &&init, typename binary_t::subtype_type subtype) |
explicitly create a binary array (with subtype) More... | |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | array (initializer_list_t init={}) |
explicitly create an array from an initializer list More... | |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | object (initializer_list_t init={}) |
explicitly create an object from an initializer list More... | |
basic_json (const value_t v) | |
create an empty value with a given type More... | |
basic_json (std::nullptr_t=nullptr) noexcept | |
create a null object More... | |
template<typename CompatibleType , typename U = detail::uncvref_t<CompatibleType>, detail::enable_if_t< !detail::is_basic_json< U >::value &&detail::is_compatible_type< basic_json_t, U >::value, int > = 0> | |
basic_json (CompatibleType &&val) noexcept(noexcept(//NOLINT(bugprone-forwarding-reference-overload, bugprone-exception-escape) JSONSerializer< U >::to_json(std::declval< basic_json_t & >(), std::forward< CompatibleType >(val)))) | |
create a JSON value from compatible types More... | |
template<typename BasicJsonType , detail::enable_if_t< detail::is_basic_json< BasicJsonType >::value &&!std::is_same< basic_json, BasicJsonType >::value, int > = 0> | |
basic_json (const BasicJsonType &val) | |
create a JSON value from an existing one More... | |
basic_json (initializer_list_t init, bool type_deduction=true, value_t manual_type=value_t::array) | |
create a container (array or object) from an initializer list More... | |
basic_json (size_type cnt, const basic_json &val) | |
construct an array with count copies of given value More... | |
template<class InputIT , typename std::enable_if< std::is_same< InputIT, typename basic_json_t::iterator >::value||std::is_same< InputIT, typename basic_json_t::const_iterator >::value, int >::type = 0> | |
basic_json (InputIT first, InputIT last) | |
construct a JSON container given an iterator range More... | |
template<typename JsonRef , detail::enable_if_t< detail::conjunction< detail::is_json_ref< JsonRef >, std::is_same< typename JsonRef::value_type, basic_json >>::value, int > = 0> | |
basic_json (const JsonRef &ref) | |
basic_json (const basic_json &other) | |
copy constructor More... | |
basic_json (basic_json &&other) noexcept | |
move constructor More... | |
basic_json & | operator= (basic_json other) noexcept(std::is_nothrow_move_constructible< value_t >::value &&std::is_nothrow_move_assignable< value_t >::value &&std::is_nothrow_move_constructible< json_value >::value &&std::is_nothrow_move_assignable< json_value >::value &&std::is_nothrow_move_assignable< json_base_class_t >::value) |
copy assignment More... | |
~basic_json () noexcept | |
destructor More... | |
object inspection | |
string_t | dump (const int indent=-1, const char indent_char=' ', const bool ensure_ascii=false, const error_handler_t error_handler=error_handler_t::strict) const |
serialization More... | |
constexpr value_t | type () const noexcept |
return the type of the JSON value (explicit) More... | |
constexpr bool | is_primitive () const noexcept |
return whether type is primitive More... | |
constexpr bool | is_structured () const noexcept |
return whether type is structured More... | |
constexpr bool | is_null () const noexcept |
return whether value is null More... | |
constexpr bool | is_boolean () const noexcept |
return whether value is a boolean More... | |
constexpr bool | is_number () const noexcept |
return whether value is a number More... | |
constexpr bool | is_number_integer () const noexcept |
return whether value is an integer number More... | |
constexpr bool | is_number_unsigned () const noexcept |
return whether value is an unsigned integer number More... | |
constexpr bool | is_number_float () const noexcept |
return whether value is a floating-point number More... | |
constexpr bool | is_object () const noexcept |
return whether value is an object More... | |
constexpr bool | is_array () const noexcept |
return whether value is an array More... | |
constexpr bool | is_string () const noexcept |
return whether value is a string More... | |
constexpr bool | is_binary () const noexcept |
return whether value is a binary array More... | |
constexpr bool | is_discarded () const noexcept |
return whether value is discarded More... | |
constexpr | operator value_t () const noexcept |
return the type of the JSON value (implicit) More... | |
value access | |
template<typename ValueType , detail::enable_if_t< detail::is_default_constructible< ValueType >::value &&detail::has_from_json< basic_json_t, ValueType >::value, int > = 0> | |
ValueType | get_impl (detail::priority_tag< 0 >) const noexcept(noexcept(JSONSerializer< ValueType >::from_json(std::declval< const basic_json_t & >(), std::declval< ValueType & >()))) |
get a value (explicit) More... | |
template<typename ValueType , detail::enable_if_t< detail::has_non_default_from_json< basic_json_t, ValueType >::value, int > = 0> | |
ValueType | get_impl (detail::priority_tag< 1 >) const noexcept(noexcept(JSONSerializer< ValueType >::from_json(std::declval< const basic_json_t & >()))) |
get a value (explicit); special case More... | |
template<typename BasicJsonType , detail::enable_if_t< detail::is_basic_json< BasicJsonType >::value, int > = 0> | |
BasicJsonType | get_impl (detail::priority_tag< 2 >) const |
get special-case overload More... | |
template<typename BasicJsonType , detail::enable_if_t< std::is_same< BasicJsonType, basic_json_t >::value, int > = 0> | |
basic_json | get_impl (detail::priority_tag< 3 >) const |
get special-case overload More... | |
template<typename PointerType , detail::enable_if_t< std::is_pointer< PointerType >::value, int > = 0> | |
constexpr auto | get_impl (detail::priority_tag< 4 >) const noexcept -> decltype(std::declval< const basic_json_t & >().template get_ptr< PointerType >()) |
get a pointer value (explicit) More... | |
template<typename PointerType , typename std::enable_if< std::is_pointer< PointerType >::value, int >::type = 0> | |
auto | get_ptr () noexcept -> decltype(std::declval< basic_json_t & >().get_impl_ptr(std::declval< PointerType >())) |
get a pointer value (implicit) More... | |
template<typename PointerType , typename std::enable_if< std::is_pointer< PointerType >::value &&std::is_const< typename std::remove_pointer< PointerType >::type >::value, int >::type = 0> | |
constexpr auto | get_ptr () const noexcept -> decltype(std::declval< const basic_json_t & >().get_impl_ptr(std::declval< PointerType >())) |
get a pointer value (implicit) More... | |
template<typename ValueTypeCV , typename ValueType = detail::uncvref_t<ValueTypeCV>> | |
auto | get () const noexcept(noexcept(std::declval< const basic_json_t & >().template get_impl< ValueType >(detail::priority_tag< 4 > {}))) -> decltype(std::declval< const basic_json_t & >().template get_impl< ValueType >(detail::priority_tag< 4 > |
get a (pointer) value (explicit) More... | |
return | get_impl (detail::priority_tag< 4 > {}) |
template<typename PointerType , typename std::enable_if< std::is_pointer< PointerType >::value, int >::type = 0> | |
auto | get () noexcept -> decltype(std::declval< basic_json_t & >().template get_ptr< PointerType >()) |
get a pointer value (explicit) More... | |
template<typename ValueType , detail::enable_if_t< !detail::is_basic_json< ValueType >::value &&detail::has_from_json< basic_json_t, ValueType >::value, int > = 0> | |
ValueType & | get_to (ValueType &v) const noexcept(noexcept(JSONSerializer< ValueType >::from_json(std::declval< const basic_json_t & >(), v))) |
get a value (explicit) More... | |
template<typename ValueType , detail::enable_if_t< detail::is_basic_json< ValueType >::value, int > = 0> | |
ValueType & | get_to (ValueType &v) const |
template<typename T , std::size_t N, typename Array = T (&)[N], detail::enable_if_t< detail::has_from_json< basic_json_t, Array >::value, int > = 0> | |
Array | get_to (T(&v)[N]) const noexcept(noexcept(JSONSerializer< Array >::from_json(std::declval< const basic_json_t & >(), v))) |
template<typename ReferenceType , typename std::enable_if< std::is_reference< ReferenceType >::value, int >::type = 0> | |
ReferenceType | get_ref () |
get a reference value (implicit) More... | |
template<typename ReferenceType , typename std::enable_if< std::is_reference< ReferenceType >::value &&std::is_const< typename std::remove_reference< ReferenceType >::type >::value, int >::type = 0> | |
ReferenceType | get_ref () const |
get a reference value (implicit) More... | |
template<typename ValueType , typename std::enable_if< detail::conjunction< detail::negation< std::is_pointer< ValueType >>, detail::negation< std::is_same< ValueType, std::nullptr_t >>, detail::negation< std::is_same< ValueType, detail::json_ref< basic_json >>>, detail::negation< std::is_same< ValueType, typename string_t::value_type >>, detail::negation< detail::is_basic_json< ValueType >>, detail::negation< std::is_same< ValueType, std::initializer_list< typename string_t::value_type >>>, detail::is_detected_lazy< detail::get_template_function, const basic_json_t &, ValueType > >::value, int >::type = 0> | |
JSON_EXPLICIT | operator ValueType () const |
get a value (implicit) More... | |
binary_t & | get_binary () |
get a binary value More... | |
const binary_t & | get_binary () const |
get a binary value More... | |
element access | |
template<typename KeyType > | |
using | is_comparable_with_object_key = detail::is_comparable< object_comparator_t, const typename object_t::key_type &, KeyType > |
template<typename ValueType > | |
using | value_return_type = std::conditional< detail::is_c_string_uncvref< ValueType >::value, string_t, typename std::decay< ValueType >::type > |
template<typename KeyType , detail::enable_if_t< detail::has_erase_with_key_type< basic_json_t, KeyType >::value, int > = 0> | |
size_type | erase_internal (KeyType &&key) |
template<typename KeyType , detail::enable_if_t< !detail::has_erase_with_key_type< basic_json_t, KeyType >::value, int > = 0> | |
size_type | erase_internal (KeyType &&key) |
reference | at (size_type idx) |
access specified array element with bounds checking More... | |
const_reference | at (size_type idx) const |
access specified array element with bounds checking More... | |
reference | at (const typename object_t::key_type &key) |
access specified object element with bounds checking More... | |
template<class KeyType , detail::enable_if_t< detail::is_usable_as_basic_json_key_type< basic_json_t, KeyType >::value, int > = 0> | |
reference | at (KeyType &&key) |
access specified object element with bounds checking More... | |
const_reference | at (const typename object_t::key_type &key) const |
access specified object element with bounds checking More... | |
template<class KeyType , detail::enable_if_t< detail::is_usable_as_basic_json_key_type< basic_json_t, KeyType >::value, int > = 0> | |
const_reference | at (KeyType &&key) const |
access specified object element with bounds checking More... | |
reference | operator[] (size_type idx) |
access specified array element More... | |
const_reference | operator[] (size_type idx) const |
access specified array element More... | |
reference | operator[] (typename object_t::key_type key) |
access specified object element More... | |
const_reference | operator[] (const typename object_t::key_type &key) const |
access specified object element More... | |
template<typename T > | |
reference | operator[] (T *key) |
template<typename T > | |
const_reference | operator[] (T *key) const |
template<class KeyType , detail::enable_if_t< detail::is_usable_as_basic_json_key_type< basic_json_t, KeyType >::value, int > = 0> | |
reference | operator[] (KeyType &&key) |
access specified object element More... | |
template<class KeyType , detail::enable_if_t< detail::is_usable_as_basic_json_key_type< basic_json_t, KeyType >::value, int > = 0> | |
const_reference | operator[] (KeyType &&key) const |
access specified object element More... | |
template<class ValueType , detail::enable_if_t< !detail::is_transparent< object_comparator_t >::value &&detail::is_getable< basic_json_t, ValueType >::value &&!std::is_same< value_t, detail::uncvref_t< ValueType >>::value, int > = 0> | |
ValueType | value (const typename object_t::key_type &key, const ValueType &default_value) const |
access specified object element with default value More... | |
template<class ValueType , class ReturnType = typename value_return_type<ValueType>::type, detail::enable_if_t< !detail::is_transparent< object_comparator_t >::value &&detail::is_getable< basic_json_t, ReturnType >::value &&!std::is_same< value_t, detail::uncvref_t< ValueType >>::value, int > = 0> | |
ReturnType | value (const typename object_t::key_type &key, ValueType &&default_value) const |
access specified object element with default value More... | |
template<class ValueType , class KeyType , detail::enable_if_t< detail::is_transparent< object_comparator_t >::value &&!detail::is_json_pointer< KeyType >::value &&is_comparable_with_object_key< KeyType >::value &&detail::is_getable< basic_json_t, ValueType >::value &&!std::is_same< value_t, detail::uncvref_t< ValueType >>::value, int > = 0> | |
ValueType | value (KeyType &&key, const ValueType &default_value) const |
access specified object element with default value More... | |
template<class ValueType , class KeyType , class ReturnType = typename value_return_type<ValueType>::type, detail::enable_if_t< detail::is_transparent< object_comparator_t >::value &&!detail::is_json_pointer< KeyType >::value &&is_comparable_with_object_key< KeyType >::value &&detail::is_getable< basic_json_t, ReturnType >::value &&!std::is_same< value_t, detail::uncvref_t< ValueType >>::value, int > = 0> | |
ReturnType | value (KeyType &&key, ValueType &&default_value) const |
access specified object element via JSON Pointer with default value More... | |
template<class ValueType , detail::enable_if_t< detail::is_getable< basic_json_t, ValueType >::value &&!std::is_same< value_t, detail::uncvref_t< ValueType >>::value, int > = 0> | |
ValueType | value (const json_pointer &ptr, const ValueType &default_value) const |
access specified object element via JSON Pointer with default value More... | |
template<class ValueType , class ReturnType = typename value_return_type<ValueType>::type, detail::enable_if_t< detail::is_getable< basic_json_t, ReturnType >::value &&!std::is_same< value_t, detail::uncvref_t< ValueType >>::value, int > = 0> | |
ReturnType | value (const json_pointer &ptr, ValueType &&default_value) const |
access specified object element via JSON Pointer with default value More... | |
template<class ValueType , class BasicJsonType , detail::enable_if_t< detail::is_basic_json< BasicJsonType >::value &&detail::is_getable< basic_json_t, ValueType >::value &&!std::is_same< value_t, detail::uncvref_t< ValueType >>::value, int > = 0> | |
JSON_HEDLEY_DEPRECATED_FOR (3.11.0, basic_json::json_pointer or nlohmann::json_pointer< basic_json::string_t >) ValueType value(const | |
access the first element More... | |
const_reference | front () const |
access the first element More... | |
reference | back () |
access the last element More... | |
const_reference | back () const |
access the last element More... | |
template<class IteratorType , detail::enable_if_t< std::is_same< IteratorType, typename basic_json_t::iterator >::value||std::is_same< IteratorType, typename basic_json_t::const_iterator >::value, int > = 0> | |
IteratorType | erase (IteratorType pos) |
remove element given an iterator More... | |
template<class IteratorType , detail::enable_if_t< std::is_same< IteratorType, typename basic_json_t::iterator >::value||std::is_same< IteratorType, typename basic_json_t::const_iterator >::value, int > = 0> | |
IteratorType | erase (IteratorType first, IteratorType last) |
remove elements given an iterator range More... | |
size_type | erase (const typename object_t::key_type &key) |
remove element from a JSON object given a key More... | |
template<class KeyType , detail::enable_if_t< detail::is_usable_as_basic_json_key_type< basic_json_t, KeyType >::value, int > = 0> | |
size_type | erase (KeyType &&key) |
remove element from a JSON object given a key More... | |
void | erase (const size_type idx) |
remove element from a JSON array given an index More... | |
lookup | |
iterator | find (const typename object_t::key_type &key) |
find an element in a JSON object More... | |
const_iterator | find (const typename object_t::key_type &key) const |
find an element in a JSON object More... | |
template<class KeyType , detail::enable_if_t< detail::is_usable_as_basic_json_key_type< basic_json_t, KeyType >::value, int > = 0> | |
iterator | find (KeyType &&key) |
find an element in a JSON object More... | |
template<class KeyType , detail::enable_if_t< detail::is_usable_as_basic_json_key_type< basic_json_t, KeyType >::value, int > = 0> | |
const_iterator | find (KeyType &&key) const |
find an element in a JSON object More... | |
size_type | count (const typename object_t::key_type &key) const |
returns the number of occurrences of a key in a JSON object More... | |
template<class KeyType , detail::enable_if_t< detail::is_usable_as_basic_json_key_type< basic_json_t, KeyType >::value, int > = 0> | |
size_type | count (KeyType &&key) const |
returns the number of occurrences of a key in a JSON object More... | |
bool | contains (const typename object_t::key_type &key) const |
check the existence of an element in a JSON object More... | |
template<class KeyType , detail::enable_if_t< detail::is_usable_as_basic_json_key_type< basic_json_t, KeyType >::value, int > = 0> | |
bool | contains (KeyType &&key) const |
check the existence of an element in a JSON object More... | |
bool | contains (const json_pointer &ptr) const |
check the existence of an element in a JSON object given a JSON pointer More... | |
modifiers | |
checks whether the container is empty. returns the number of elements returns the maximum possible number of elements | |
void | swap (reference left, reference right) noexcept(std::is_nothrow_move_constructible< value_t >::value &&std::is_nothrow_move_assignable< value_t >::value &&std::is_nothrow_move_constructible< json_value >::value &&//NOLINT(cppcoreguidelines-noexcept-swap, performance-noexcept-swap) std::is_nothrow_move_assignable< json_value >::value) |
exchanges the values More... | |
reference | operator+= (basic_json &&val) |
add an object to an array More... | |
void | push_back (const basic_json &val) |
add an object to an array More... | |
reference | operator+= (const basic_json &val) |
add an object to an array More... | |
void | push_back (const typename object_t::value_type &val) |
add an object to an object More... | |
reference | operator+= (const typename object_t::value_type &val) |
add an object to an object More... | |
void | push_back (initializer_list_t init) |
add an object to an object More... | |
reference | operator+= (initializer_list_t init) |
add an object to an object More... | |
template<class... Args> | |
reference | emplace_back (Args &&... args) |
add an object to an array More... | |
template<class... Args> | |
std::pair< iterator, bool > | emplace (Args &&... args) |
add an object to an object if key does not exist More... | |
template<typename... Args> | |
iterator | insert_iterator (const_iterator pos, Args &&... args) |
iterator | insert (const_iterator pos, const basic_json &val) |
inserts element into array More... | |
iterator | insert (const_iterator pos, basic_json &&val) |
inserts element into array More... | |
iterator | insert (const_iterator pos, size_type cnt, const basic_json &val) |
inserts copies of element into array More... | |
iterator | insert (const_iterator pos, const_iterator first, const_iterator last) |
inserts range of elements into array More... | |
iterator | insert (const_iterator pos, initializer_list_t ilist) |
inserts elements from initializer list into array More... | |
void | insert (const_iterator first, const_iterator last) |
inserts range of elements into object More... | |
void | update (const_reference j, bool merge_objects=false) |
updates a JSON object from another object, overwriting existing keys More... | |
void | update (const_iterator first, const_iterator last, bool merge_objects=false) |
updates a JSON object from another object, overwriting existing keys More... | |
void | swap (reference other) noexcept(std::is_nothrow_move_constructible< value_t >::value &&std::is_nothrow_move_assignable< value_t >::value &&std::is_nothrow_move_constructible< json_value >::value &&//NOLINT(cppcoreguidelines-noexcept-swap, performance-noexcept-swap) std::is_nothrow_move_assignable< json_value >::value) |
exchanges the values More... | |
void | swap (array_t &other) |
exchanges the values More... | |
void | swap (object_t &other) |
exchanges the values More... | |
void | swap (string_t &other) |
exchanges the values More... | |
void | swap (binary_t &other) |
exchanges the values More... | |
void | swap (typename binary_t::container_type &other) |
exchanges the values More... | |
lexicographical comparison operators | |
JSON_PRIVATE_UNLESS_TESTED | __pad3__: static bool compares_unordered(const_reference lhs |
JSON_PRIVATE_UNLESS_TESTED const_reference | rhs |
JSON_PRIVATE_UNLESS_TESTED const_reference bool | inverse |
binary serialization/deserialization support | |
static std::vector< std::uint8_t > | to_cbor (const basic_json &j) |
create a CBOR serialization of a given JSON value More... | |
static void | to_cbor (const basic_json &j, detail::output_adapter< std::uint8_t > o) |
create a CBOR serialization of a given JSON value More... | |
static void | to_cbor (const basic_json &j, detail::output_adapter< char > o) |
create a CBOR serialization of a given JSON value More... | |
static std::vector< std::uint8_t > | to_msgpack (const basic_json &j) |
create a MessagePack serialization of a given JSON value More... | |
static void | to_msgpack (const basic_json &j, detail::output_adapter< std::uint8_t > o) |
create a MessagePack serialization of a given JSON value More... | |
static void | to_msgpack (const basic_json &j, detail::output_adapter< char > o) |
create a MessagePack serialization of a given JSON value More... | |
static std::vector< std::uint8_t > | to_ubjson (const basic_json &j, const bool use_size=false, const bool use_type=false) |
create a UBJSON serialization of a given JSON value More... | |
static void | to_ubjson (const basic_json &j, detail::output_adapter< std::uint8_t > o, const bool use_size=false, const bool use_type=false) |
create a UBJSON serialization of a given JSON value More... | |
static void | to_ubjson (const basic_json &j, detail::output_adapter< char > o, const bool use_size=false, const bool use_type=false) |
create a UBJSON serialization of a given JSON value More... | |
static std::vector< std::uint8_t > | to_bjdata (const basic_json &j, const bool use_size=false, const bool use_type=false) |
create a BJData serialization of a given JSON value More... | |
static void | to_bjdata (const basic_json &j, detail::output_adapter< std::uint8_t > o, const bool use_size=false, const bool use_type=false) |
create a BJData serialization of a given JSON value More... | |
static void | to_bjdata (const basic_json &j, detail::output_adapter< char > o, const bool use_size=false, const bool use_type=false) |
create a BJData serialization of a given JSON value More... | |
static std::vector< std::uint8_t > | to_bson (const basic_json &j) |
create a BSON serialization of a given JSON value More... | |
static void | to_bson (const basic_json &j, detail::output_adapter< std::uint8_t > o) |
create a BSON serialization of a given JSON value More... | |
static void | to_bson (const basic_json &j, detail::output_adapter< char > o) |
create a BSON serialization of a given JSON value More... | |
template<typename InputType > | |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | from_cbor (InputType &&i, const bool strict=true, const bool allow_exceptions=true, const cbor_tag_handler_t tag_handler=cbor_tag_handler_t::error) |
create a JSON value from an input in CBOR format More... | |
template<typename IteratorType > | |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | from_cbor (IteratorType first, IteratorType last, const bool strict=true, const bool allow_exceptions=true, const cbor_tag_handler_t tag_handler=cbor_tag_handler_t::error) |
create a JSON value from an input in CBOR format More... | |
template<typename T > | |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | from_cbor (const T *ptr, std::size_t len, const bool strict=true, const bool allow_exceptions=true, const cbor_tag_handler_t tag_handler=cbor_tag_handler_t::error) |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | from_cbor (detail::span_input_adapter &&i, const bool strict=true, const bool allow_exceptions=true, const cbor_tag_handler_t tag_handler=cbor_tag_handler_t::error) |
template<typename InputType > | |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | from_msgpack (InputType &&i, const bool strict=true, const bool allow_exceptions=true) |
create a JSON value from an input in MessagePack format More... | |
template<typename IteratorType > | |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | from_msgpack (IteratorType first, IteratorType last, const bool strict=true, const bool allow_exceptions=true) |
create a JSON value from an input in MessagePack format More... | |
template<typename T > | |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | from_msgpack (const T *ptr, std::size_t len, const bool strict=true, const bool allow_exceptions=true) |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | from_msgpack (detail::span_input_adapter &&i, const bool strict=true, const bool allow_exceptions=true) |
template<typename InputType > | |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | from_ubjson (InputType &&i, const bool strict=true, const bool allow_exceptions=true) |
create a JSON value from an input in UBJSON format More... | |
template<typename IteratorType > | |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | from_ubjson (IteratorType first, IteratorType last, const bool strict=true, const bool allow_exceptions=true) |
create a JSON value from an input in UBJSON format More... | |
template<typename T > | |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | from_ubjson (const T *ptr, std::size_t len, const bool strict=true, const bool allow_exceptions=true) |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | from_ubjson (detail::span_input_adapter &&i, const bool strict=true, const bool allow_exceptions=true) |
template<typename InputType > | |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | from_bjdata (InputType &&i, const bool strict=true, const bool allow_exceptions=true) |
create a JSON value from an input in BJData format More... | |
template<typename IteratorType > | |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | from_bjdata (IteratorType first, IteratorType last, const bool strict=true, const bool allow_exceptions=true) |
create a JSON value from an input in BJData format More... | |
template<typename InputType > | |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | from_bson (InputType &&i, const bool strict=true, const bool allow_exceptions=true) |
create a JSON value from an input in BSON format More... | |
template<typename IteratorType > | |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | from_bson (IteratorType first, IteratorType last, const bool strict=true, const bool allow_exceptions=true) |
create a JSON value from an input in BSON format More... | |
template<typename T > | |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | from_bson (const T *ptr, std::size_t len, const bool strict=true, const bool allow_exceptions=true) |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | from_bson (detail::span_input_adapter &&i, const bool strict=true, const bool allow_exceptions=true) |
JSON Pointer functions | |
reference | operator[] (const json_pointer &ptr) |
access specified element via JSON Pointer More... | |
template<typename BasicJsonType , detail::enable_if_t< detail::is_basic_json< BasicJsonType >::value, int > = 0> | |
JSON_HEDLEY_DEPRECATED_FOR (3.11.0, basic_json::json_pointer or nlohmann::json_pointer< basic_json::string_t >) reference operator[](const | |
const_reference | operator[] (const json_pointer &ptr) const |
access specified element via JSON Pointer More... | |
template<typename BasicJsonType , detail::enable_if_t< detail::is_basic_json< BasicJsonType >::value, int > = 0> | |
JSON_HEDLEY_DEPRECATED_FOR (3.11.0, basic_json::json_pointer or nlohmann::json_pointer< basic_json::string_t >) const _reference operator[](const | |
access specified element via JSON Pointer More... | |
template<typename BasicJsonType , detail::enable_if_t< detail::is_basic_json< BasicJsonType >::value, int > = 0> | |
JSON_HEDLEY_DEPRECATED_FOR (3.11.0, basic_json::json_pointer or nlohmann::json_pointer< basic_json::string_t >) reference at(const | |
const_reference | at (const json_pointer &ptr) const |
access specified element via JSON Pointer More... | |
JSON Patch functions | |
unflatten a previously flattened JSON value | |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | diff (const basic_json &source, const basic_json &target, const std::string &path="") |
creates a diff as a JSON patch More... | |
basic_json | patch (const basic_json &json_patch) const |
applies a JSON patch to a copy of the current object More... | |
JSON Merge Patch functions | |
void | merge_patch (const basic_json &apply_patch) |
applies a JSON Merge Patch More... | |
namespace for Niels Lohmann
a class to store JSON values
a class to store JSON values
using basic_json::allocator_type = AllocatorType<basic_json> |
using basic_json::array_t = ArrayType<basic_json, AllocatorType<basic_json> > |
a type for an array
|
private |
|
private |
using basic_json::binary_t = nlohmann::byte_container_with_subtype<BinaryType> |
a type for a packed binary type
|
private |
using basic_json::boolean_t = BooleanType |
a type for a boolean
using basic_json::const_iterator = iter_impl<const basic_json> |
a const iterator for a basic_json container
using basic_json::const_pointer = typename std::allocator_traits<allocator_type>::const_pointer |
using basic_json::const_reference = const value_type& |
using basic_json::const_reverse_iterator = json_reverse_iterator<typename basic_json::const_iterator> |
a const reverse iterator for a basic_json container
using basic_json::default_object_comparator_t = std::less<StringType> |
default object key comparator type The actual object key comparator type (object_comparator_t) may be different.
using basic_json::difference_type = std::ptrdiff_t |
using basic_json::initializer_list_t = std::initializer_list<detail::json_ref<basic_json> > |
helper type for initializer lists of basic_json values
|
private |
|
private |
|
private |
|
private |
using basic_json::iterator = iter_impl<basic_json> |
an iterator for a basic_json container
|
private |
using basic_json::json_pointer = ::nlohmann::json_pointer<StringType> |
|
private |
using basic_json::json_sax_t = json_sax<basic_json> |
using basic_json::json_serializer = JSONSerializer<T, SFINAE> |
using basic_json::number_float_t = NumberFloatType |
a type for a number (floating-point)
using basic_json::number_integer_t = NumberIntegerType |
a type for a number (integer)
using basic_json::number_unsigned_t = NumberUnsignedType |
a type for a number (unsigned)
object key comparator type
using basic_json::object_t = ObjectType<StringType, basic_json, default_object_comparator_t, AllocatorType<std::pair<const StringType, basic_json> >> |
a type for an object
|
private |
parser event types
per-element parser callback type
using basic_json::pointer = typename std::allocator_traits<allocator_type>::pointer |
|
private |
using basic_json::reference = value_type& |
using basic_json::reverse_iterator = json_reverse_iterator<typename basic_json::iterator> |
a reverse iterator for a basic_json container
using basic_json::size_type = std::size_t |
using basic_json::string_t = StringType |
a type for a string
|
private |
using basic_json::value_t = detail::value_t |
using basic_json::value_type = basic_json |
the type of elements in a basic_json container
|
inline |
create an empty value with a given type
|
inlinenoexcept |
create a null object
|
inlinenoexcept |
create a JSON value from compatible types
|
inline |
create a JSON value from an existing one
|
inline |
create a container (array or object) from an initializer list
|
inline |
construct an array with count copies of given value
|
inline |
construct a JSON container given an iterator range
|
inline |
|
inline |
copy constructor
|
inlinenoexcept |
move constructor
|
inlinenoexcept |
destructor
|
inlinestatic |
explicitly create an array from an initializer list
|
inlineprivatenoexcept |
checks the class invariants
This function asserts the class invariants. It needs to be called at the end of every constructor to make sure that created objects respect the invariant. Furthermore, it has to be called each time the type of a JSON value is changed, because the invariant expresses a relationship between m_type and m_value.
Furthermore, the parent relation is checked for arrays and objects: If check_parents true and the value is an array or object, then the container's elements must have the current value as parent.
[in] | check_parents | whether the parent relation should be checked. The value is true by default and should only be set to false during destruction of objects when the invariant does not need to hold. |
|
inline |
access specified element via JSON Pointer
|
inline |
access specified object element with bounds checking
|
inline |
access specified object element with bounds checking
|
inline |
access specified object element with bounds checking
|
inline |
access specified object element with bounds checking
access specified array element with bounds checking
|
inline |
access specified array element with bounds checking
|
inline |
access the last element
|
inline |
access the last element
|
inlinestatic |
explicitly create a binary array (without subtype)
|
inlinestatic |
explicitly create a binary array (with subtype)
|
inlinestatic |
explicitly create a binary array
|
inlinestatic |
explicitly create a binary array (with subtype)
|
inline |
check the existence of an element in a JSON object given a JSON pointer
|
inline |
check the existence of an element in a JSON object
|
inline |
check the existence of an element in a JSON object
|
inline |
returns the number of occurrences of a key in a JSON object
|
inline |
returns the number of occurrences of a key in a JSON object
|
inlinestaticprivate |
|
defaultnoexcept |
|
deletenoexcept |
|
defaultnoexcept |
|
inline |
|
inlinestatic |
creates a diff as a JSON patch
|
inline |
serialization
|
inline |
add an object to an object if key does not exist
|
inline |
add an object to an array
|
inline |
remove element from a JSON array given an index
|
inline |
remove element from a JSON object given a key
|
inline |
remove elements given an iterator range
|
inline |
remove element given an iterator
|
inline |
remove element from a JSON object given a key
|
inlineprivate |
|
inlineprivate |
|
inline |
find an element in a JSON object
|
inline |
find an element in a JSON object
|
inline |
find an element in a JSON object
|
inline |
find an element in a JSON object
|
inlinestatic |
create a JSON value from an input in BJData format
|
inlinestatic |
create a JSON value from an input in BJData format
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
create a JSON value from an input in BSON format
|
inlinestatic |
create a JSON value from an input in BSON format
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
create a JSON value from an input in CBOR format
|
inlinestatic |
create a JSON value from an input in CBOR format
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
create a JSON value from an input in MessagePack format
|
inlinestatic |
create a JSON value from an input in MessagePack format
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
create a JSON value from an input in UBJSON format
|
inlinestatic |
create a JSON value from an input in UBJSON format
|
inline |
access the first element
|
inlinenoexcept |
get a (pointer) value (explicit)
Performs explicit type conversion between the JSON value and a compatible value if required.
from_json()
method.ValueTypeCV | the provided value type |
ValueType | the returned value type |
ValueType | if necessary |
what | json_serializer<ValueType> from_json() method throws if conversion is required |
|
inlinenoexcept |
get a pointer value (explicit)
Explicit pointer access to the internally stored JSON value. No copies are made.
PointerType | pointer type; must be a pointer to array_t, object_t, string_t, boolean_t, number_integer_t, number_unsigned_t, or number_float_t. |
nullptr
otherwise@complexity Constant.
@liveexample{The example below shows how pointers to internal values of a JSON value can be requested. Note that no type conversions are made and a nullptr
is returned if the value and the requested pointer type does not match.,get__PointerType}
|
inlinestatic |
returns the allocator associated with the container
|
inline |
get a binary value
|
inline |
get a binary value
|
inlineprivatenoexcept |
get a value (explicit)
Explicit type conversion between the JSON value and a compatible value which is CopyConstructible and DefaultConstructible. The value is converted by calling the json_serializer<ValueType> from_json()
method.
The function is equivalent to executing
This overloads is chosen if:
from_json()
method of the form void from_json(const basic_json&, ValueType&)
, andfrom_json()
method of the form ValueType from_json(const basic_json&)
ValueType | the returned value type |
what | json_serializer<ValueType> from_json() method throws |
@liveexample{The example below shows several conversions from JSON values to other types. There a few things to note: (1) Floating-point numbers can be converted to integers\, (2) A JSON array can be converted to a standard std::vector<short>
\, (3) A JSON object can be converted to C++ associative containers such as std::unordered_map<std::string\, json>
.,get__ValueType_const}
|
inlineprivatenoexcept |
get a value (explicit); special case
Explicit type conversion between the JSON value and a compatible value which is not CopyConstructible and not DefaultConstructible. The value is converted by calling the json_serializer<ValueType> from_json()
method.
The function is equivalent to executing
This overloads is chosen if:
from_json()
method of the form ValueType from_json(const basic_json&)
from_json()
, this one is chosen.ValueType | the returned value type |
what | json_serializer<ValueType> from_json() method throws |
|
inlineprivate |
get special-case overload
This overloads converts the current basic_json in a different basic_json type
BasicJsonType | == basic_json |
@complexity Depending on the implementation of the called from_json()
method.
|
inlineprivate |
get special-case overload
This overloads avoids a lot of template boilerplate, it can be seen as the identity method
BasicJsonType | == basic_json |
@complexity Constant.
return basic_json::get_impl | ( | detail::priority_tag< 4 > {} | ) |
|
inlineconstexprprivatenoexcept |
get a pointer value (explicit)
get a pointer value (explicit) Explicit pointer access to the internally stored JSON value. No copies are made.
PointerType | pointer type; must be a pointer to array_t, object_t, string_t, boolean_t, number_integer_t, number_unsigned_t, or number_float_t. |
nullptr
otherwise@complexity Constant.
@liveexample{The example below shows how pointers to internal values of a JSON value can be requested. Note that no type conversions are made and a nullptr
is returned if the value and the requested pointer type does not match.,get__PointerType}
|
inlineconstexprprivatenoexcept |
|
inlineconstexprprivatenoexcept |
|
inlineconstexprprivatenoexcept |
|
inlineprivatenoexcept |
|
inlineprivatenoexcept |
|
inlineprivatenoexcept |
|
inlineconstexprnoexcept |
get a pointer value (implicit)
|
inlinenoexcept |
get a pointer value (implicit)
|
inline |
get a reference value (implicit)
|
inline |
get a reference value (implicit)
|
inlinestaticprivate |
helper function to implement get_ref()
This function helps to implement get_ref() without code duplication for const and non-const overloads
ThisType | will be deduced as basic_json or const basic_json |
type_error.303 | if ReferenceType does not match underlying value type of the current JSON |
|
inlinenoexcept |
|
inline |
|
inlinenoexcept |
get a value (explicit)
|
inline |
inserts range of elements into object
|
inline |
inserts element into array
|
inline |
inserts element into array
|
inline |
inserts range of elements into array
|
inline |
inserts elements from initializer list into array
|
inline |
inserts copies of element into array
|
inline |
Helper for insertion of an iterator
|
inlineconstexprnoexcept |
return whether value is an array
|
inlineconstexprnoexcept |
return whether value is a binary array
|
inlineconstexprnoexcept |
return whether value is a boolean
|
inlineconstexprnoexcept |
return whether value is discarded
|
inlineconstexprnoexcept |
return whether value is null
|
inlineconstexprnoexcept |
return whether value is a number
|
inlineconstexprnoexcept |
return whether value is a floating-point number
|
inlineconstexprnoexcept |
return whether value is an integer number
|
inlineconstexprnoexcept |
return whether value is an unsigned integer number
|
inlineconstexprnoexcept |
return whether value is an object
|
inlineconstexprnoexcept |
return whether type is primitive
|
inlineconstexprnoexcept |
return whether value is a string
|
inlineconstexprnoexcept |
return whether type is structured
|
inline |
access specified element via JSON Pointer
|
inline |
|
inline |
|
inline |
access the first element
|
privatedefault |
default constructor (for null values)
|
inlineprivate |
|
inlineprivate |
|
inlineprivatenoexcept |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivatenoexcept |
|
inlineprivatenoexcept |
|
inlineprivatenoexcept |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inline |
applies a JSON Merge Patch
|
inlinestatic |
returns version information on the library
|
inlinestatic |
explicitly create an object from an initializer list
|
inlineconstexprnoexcept |
return the type of the JSON value (implicit)
|
inline |
get a value (implicit)
Implicit type conversion between the JSON value and a compatible value. The call is realized by calling get() const.
ValueType | non-pointer type compatible to the JSON value, for instance int for JSON integer numbers, bool for JSON booleans, or std::vector types for JSON arrays. The character type of string_t as well as an initializer list of this type is excluded to avoid ambiguities as these types implicitly convert to std::string . |
type_error.302 | in case passed type ValueType is incompatible to the JSON value type (e.g., the JSON value is of type boolean, but a string is requested); see example below |
@complexity Linear in the size of the JSON value.
@liveexample{The example below shows several conversions from JSON values to other types. There a few things to note: (1) Floating-point numbers can be converted to integers\, (2) A JSON array can be converted to a standard std::vector<short>
\, (3) A JSON object can be converted to C++ associative containers such as std::unordered_map<std::string\, json>
.,operator__ValueType}
|
inline |
add an object to an array
|
inline |
add an object to an array
|
inline |
add an object to an object
|
inline |
add an object to an object
|
inlinenoexcept |
copy assignment
|
inline |
access specified element via JSON Pointer
|
inline |
access specified element via JSON Pointer
|
inline |
access specified object element
|
inline |
access specified object element
|
inline |
access specified object element
access specified array element
|
inline |
access specified array element
|
inline |
|
inline |
|
inline |
access specified object element
|
inlineprivate |
|
inline |
applies a JSON patch to a copy of the current object
|
inline |
add an object to an array
|
inline |
add an object to an object
|
inline |
add an object to an object
|
inlinestatic |
generate SAX events
|
inlinestatic |
|
inlinestatic |
generate SAX events
|
inline |
exchanges the values
|
inline |
exchanges the values
|
inline |
exchanges the values
|
inlinenoexcept |
exchanges the values
|
inline |
exchanges the values
|
inline |
exchanges the values
|
inlinestatic |
create a BJData serialization of a given JSON value
|
inlinestatic |
create a BJData serialization of a given JSON value
|
inlinestatic |
create a BJData serialization of a given JSON value
|
inlinestatic |
create a BSON serialization of a given JSON value
|
inlinestatic |
create a BSON serialization of a given JSON value
|
inlinestatic |
create a BSON serialization of a given JSON value
|
inlinestatic |
create a CBOR serialization of a given JSON value
|
inlinestatic |
create a CBOR serialization of a given JSON value
|
inlinestatic |
create a CBOR serialization of a given JSON value
|
inlinestatic |
create a MessagePack serialization of a given JSON value
|
inlinestatic |
create a MessagePack serialization of a given JSON value
|
inlinestatic |
create a MessagePack serialization of a given JSON value
|
inlinestatic |
create a UBJSON serialization of a given JSON value
|
inlinestatic |
create a UBJSON serialization of a given JSON value
|
inlinestatic |
create a UBJSON serialization of a given JSON value
|
inlineconstexprnoexcept |
return the type of the JSON value (explicit)
|
inlinenoexcept |
return the type as string
|
inline |
updates a JSON object from another object, overwriting existing keys
|
inline |
updates a JSON object from another object, overwriting existing keys
|
inline |
access specified object element via JSON Pointer with default value
|
inline |
access specified object element via JSON Pointer with default value
|
inline |
access specified object element with default value
|
inline |
access specified object element with default value
|
inline |
access specified object element with default value
|
inline |
access specified object element via JSON Pointer with default value
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
deserialize from stream
j << i;
with i >> j;
.
|
friend |
deserialize from stream
exchanges the values
|
private |
|
private |
|
private |
JSON_PRIVATE_UNLESS_TESTED basic_json::__pad3__ |
JSON_PRIVATE_UNLESS_TESTED basic_json::__pad4__ |
|
private |
|
private |
JSON_PRIVATE_UNLESS_TESTED const_reference bool basic_json::inverse |
json_value basic_json::m_value = {} |
|
private |
|
private |
|
private |
JSON_PRIVATE_UNLESS_TESTED const_reference basic_json::rhs |
|
private |