a class to store JSON values 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< basic_json > |
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 | |
const JSON_HEDLEY_RETURNS_NON_NULL char * | type_name () const noexcept |
return the type as string More... | |
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... | |
Public Attributes | |
JSON_PRIVATE_UNLESS_TESTED | __pad3__: value_t m_type = value_t::null |
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 > |
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<detail::value_t > | |
struct | detail::external_constructor |
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 | object_comparator_t = std::less< StringType > |
object key comparator type More... | |
using | object_t = ObjectType< StringType, basic_json, 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... | |
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) |
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, 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 | |
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... | |
const_reference | at (const typename object_t::key_type &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[] (const 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) |
access specified object element More... | |
template<typename T > | |
const_reference | operator[] (T *key) const |
access specified object element More... | |
template<class ValueType , typename std::enable_if< detail::is_getable< basic_json_t, ValueType >::value &&!std::is_same< value_t, ValueType >::value, int >::type = 0> | |
ValueType | value (const typename object_t::key_type &key, const ValueType &default_value) const |
access specified object element with default value More... | |
string_t | value (const typename object_t::key_type &key, const char *default_value) const |
access specified object element with default value More... | |
template<class ValueType , typename std::enable_if< detail::is_getable< basic_json_t, ValueType >::value, int >::type = 0> | |
ValueType | value (const json_pointer &ptr, const ValueType &default_value) const |
access specified object element via JSON Pointer with default value More... | |
string_t | value (const json_pointer &ptr, const char *default_value) const |
access specified object element via JSON Pointer with default value More... | |
reference | front () |
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 , typename std::enable_if< std::is_same< IteratorType, typename basic_json_t::iterator >::value||std::is_same< IteratorType, typename basic_json_t::const_iterator >::value, int >::type = 0> | |
IteratorType | erase (IteratorType pos) |
remove element given an iterator More... | |
template<class IteratorType , typename std::enable_if< std::is_same< IteratorType, typename basic_json_t::iterator >::value||std::is_same< IteratorType, typename basic_json_t::const_iterator >::value, int >::type = 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... | |
void | erase (const size_type idx) |
remove element from a JSON array given an index More... | |
lookup | |
template<typename KeyT > | |
iterator | find (KeyT &&key) |
find an element in a JSON object More... | |
template<typename KeyT > | |
const_iterator | find (KeyT &&key) const |
find an element in a JSON object More... | |
template<typename KeyT > | |
size_type | count (KeyT &&key) const |
returns the number of occurrences of a key in a JSON object More... | |
template<typename KeyT , typename std::enable_if< !std::is_same< typename std::decay< KeyT >::type, json_pointer >::value, int >::type = 0> | |
bool | contains (KeyT &&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... | |
iterators | |
static iteration_proxy< iterator > | iterator_wrapper (reference ref) noexcept |
wrapper to access iterator member functions in range-based for More... | |
static iteration_proxy< const_iterator > | iterator_wrapper (const_reference ref) noexcept |
wrapper to access iterator member functions in range-based for More... | |
iterator | begin () noexcept |
returns an iterator to the first element More... | |
const_iterator | begin () const noexcept |
returns an iterator to the first element More... | |
const_iterator | cbegin () const noexcept |
returns a const iterator to the first element More... | |
iterator | end () noexcept |
returns an iterator to one past the last element More... | |
const_iterator | end () const noexcept |
returns an iterator to one past the last element More... | |
const_iterator | cend () const noexcept |
returns an iterator to one past the last element More... | |
reverse_iterator | rbegin () noexcept |
returns an iterator to the reverse-beginning More... | |
const_reverse_iterator | rbegin () const noexcept |
returns an iterator to the reverse-beginning More... | |
reverse_iterator | rend () noexcept |
returns an iterator to the reverse-end More... | |
const_reverse_iterator | rend () const noexcept |
returns an iterator to the reverse-end More... | |
const_reverse_iterator | crbegin () const noexcept |
returns a const reverse iterator to the last element More... | |
const_reverse_iterator | crend () const noexcept |
returns a const reverse iterator to one before the first More... | |
iteration_proxy< iterator > | items () noexcept |
helper to access iterator member functions in range-based for More... | |
iteration_proxy< const_iterator > | items () const noexcept |
helper to access iterator member functions in range-based for More... | |
capacity | |
bool | empty () const noexcept |
checks whether the container is empty. More... | |
size_type | size () const noexcept |
returns the number of elements More... | |
size_type | max_size () const noexcept |
returns the maximum possible number of elements More... | |
modifiers | |
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 &&std::is_nothrow_move_assignable< json_value >::value) |
exchanges the values More... | |
void | clear () noexcept |
clears the contents More... | |
void | push_back (basic_json &&val) |
add an object to an array 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 &&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 | |
bool | operator== (const_reference lhs, const_reference rhs) noexcept |
comparison: equal More... | |
template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0> | |
bool | operator== (const_reference lhs, ScalarType rhs) noexcept |
comparison: equal More... | |
template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0> | |
bool | operator== (ScalarType lhs, const_reference rhs) noexcept |
comparison: equal More... | |
bool | operator!= (const_reference lhs, const_reference rhs) noexcept |
comparison: not equal More... | |
template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0> | |
bool | operator!= (const_reference lhs, ScalarType rhs) noexcept |
comparison: not equal More... | |
template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0> | |
bool | operator!= (ScalarType lhs, const_reference rhs) noexcept |
comparison: not equal More... | |
bool | operator< (const_reference lhs, const_reference rhs) noexcept |
comparison: less than More... | |
template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0> | |
bool | operator< (const_reference lhs, ScalarType rhs) noexcept |
comparison: less than More... | |
template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0> | |
bool | operator< (ScalarType lhs, const_reference rhs) noexcept |
comparison: less than More... | |
bool | operator<= (const_reference lhs, const_reference rhs) noexcept |
comparison: less than or equal More... | |
template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0> | |
bool | operator<= (const_reference lhs, ScalarType rhs) noexcept |
comparison: less than or equal More... | |
template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0> | |
bool | operator<= (ScalarType lhs, const_reference rhs) noexcept |
comparison: less than or equal More... | |
bool | operator> (const_reference lhs, const_reference rhs) noexcept |
comparison: greater than More... | |
template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0> | |
bool | operator> (const_reference lhs, ScalarType rhs) noexcept |
comparison: greater than More... | |
template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0> | |
bool | operator> (ScalarType lhs, const_reference rhs) noexcept |
comparison: greater than More... | |
bool | operator>= (const_reference lhs, const_reference rhs) noexcept |
comparison: greater than or equal More... | |
template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0> | |
bool | operator>= (const_reference lhs, ScalarType rhs) noexcept |
comparison: greater than or equal More... | |
template<typename ScalarType , typename std::enable_if< std::is_scalar< ScalarType >::value, int >::type = 0> | |
bool | operator>= (ScalarType lhs, const_reference rhs) noexcept |
comparison: greater than or equal More... | |
serialization | |
std::ostream & | operator<< (std::ostream &o, const basic_json &j) |
serialize to stream More... | |
std::ostream & | operator>> (const basic_json &j, std::ostream &o) |
serialize to stream More... | |
deserialization | |
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... | |
template<typename InputType > | |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | parse (InputType &&i, const parser_callback_t cb=nullptr, const bool allow_exceptions=true, const bool ignore_comments=false) |
deserialize from a compatible input More... | |
template<typename IteratorType > | |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | parse (IteratorType first, IteratorType last, const parser_callback_t cb=nullptr, const bool allow_exceptions=true, const bool ignore_comments=false) |
deserialize from a pair of character iterators More... | |
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json | parse (detail::span_input_adapter &&i, const parser_callback_t cb=nullptr, const bool allow_exceptions=true, const bool ignore_comments=false) |
template<typename InputType > | |
static bool | accept (InputType &&i, const bool ignore_comments=false) |
check if the input is valid JSON More... | |
template<typename IteratorType > | |
static bool | accept (IteratorType first, IteratorType last, const bool ignore_comments=false) |
check if the input is valid JSON More... | |
static JSON_HEDLEY_WARN_UNUSED_RESULT bool | accept (detail::span_input_adapter &&i, const bool ignore_comments=false) |
template<typename InputType , typename SAX > | |
static bool | sax_parse (InputType &&i, SAX *sax, input_format_t format=input_format_t::json, const bool strict=true, const bool ignore_comments=false) |
generate SAX events More... | |
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... | |
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... | |
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_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_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... | |
const_reference | operator[] (const json_pointer &ptr) const |
access specified element via JSON Pointer More... | |
reference | at (const json_pointer &ptr) |
access specified element via JSON Pointer More... | |
const_reference | at (const json_pointer &ptr) const |
access specified element via JSON Pointer More... | |
basic_json | flatten () const |
return flattened JSON value More... | |
basic_json | unflatten () const |
unflatten a previously flattened JSON value More... | |
JSON Patch functions | |
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 More... | |
JSON Merge Patch functions | |
void | merge_patch (const basic_json &apply_patch) |
applies a JSON Merge Patch More... | |
a class to store JSON values
a class to store JSON values
using nlohmann::basic_json::allocator_type = AllocatorType<basic_json> |
using nlohmann::basic_json::array_t = ArrayType<basic_json, AllocatorType<basic_json> > |
a type for an array
|
private |
|
private |
using nlohmann::basic_json::binary_t = nlohmann::byte_container_with_subtype<BinaryType> |
a type for a packed binary type
|
private |
using nlohmann::basic_json::boolean_t = BooleanType |
a type for a boolean
using nlohmann::basic_json::const_iterator = iter_impl<const basic_json> |
a const iterator for a basic_json container
using nlohmann::basic_json::const_pointer = typename std::allocator_traits<allocator_type>::const_pointer |
using nlohmann::basic_json::const_reference = const value_type& |
using nlohmann::basic_json::const_reverse_iterator = json_reverse_iterator<typename basic_json::const_iterator> |
a const reverse iterator for a basic_json container
using nlohmann::basic_json::difference_type = std::ptrdiff_t |
using nlohmann::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 |
an iterator for a basic_json container
JSON Pointer, see nlohmann::json_pointer.
|
private |
SAX interface type, see nlohmann::json_sax.
using nlohmann::basic_json::json_serializer = JSONSerializer<T, SFINAE> |
using nlohmann::basic_json::number_float_t = NumberFloatType |
a type for a number (floating-point)
using nlohmann::basic_json::number_integer_t = NumberIntegerType |
a type for a number (integer)
using nlohmann::basic_json::number_unsigned_t = NumberUnsignedType |
a type for a number (unsigned)
using nlohmann::basic_json::object_comparator_t = std::less<StringType> |
object key comparator type
using nlohmann::basic_json::object_t = ObjectType<StringType, basic_json, 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 nlohmann::basic_json::pointer = typename std::allocator_traits<allocator_type>::pointer |
using nlohmann::basic_json::reverse_iterator = json_reverse_iterator<typename basic_json::iterator> |
a reverse iterator for a basic_json container
using nlohmann::basic_json::size_type = std::size_t |
using nlohmann::basic_json::string_t = StringType |
a type for a string
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 |
|
inlinestatic |
check if the input is valid JSON
|
inlinestatic |
check if the input is valid JSON
|
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 element via JSON Pointer
|
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
|
inlinenoexcept |
returns an iterator to the first element
|
inlinenoexcept |
returns an iterator to the first 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)
|
inlinenoexcept |
returns a const iterator to the first element
|
inlinenoexcept |
returns an iterator to one past the last element
|
inlinenoexcept |
clears the contents
|
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 |
returns the number of occurrences of a key in a JSON object
|
inlinenoexcept |
returns a const reverse iterator to the last element
|
inlinestaticprivate |
|
inlinenoexcept |
returns a const reverse iterator to one before the first
|
inlineprivate |
|
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
|
inlinenoexcept |
checks whether the container is empty.
|
inlinenoexcept |
returns an iterator to one past the last element
|
inlinenoexcept |
returns an iterator to one past the last element
|
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 |
find an element in a JSON object
|
inline |
find an element in a JSON object
|
inline |
return flattened JSON value
|
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
|
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 nlohmann::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
|
inlinenoexcept |
helper to access iterator member functions in range-based for
|
inlinenoexcept |
helper to access iterator member functions in range-based for
|
inlinestaticnoexcept |
wrapper to access iterator member functions in range-based for
json::iterator_wrapper(j)
with j.items()
.
|
inlinestaticnoexcept |
wrapper to access iterator member functions in range-based for
json::iterator_wrapper(j)
with j.items()
.
|
privatedefault |
default constructor (for null values)
|
inlineprivate |
|
inlineprivate |
|
inlineprivatenoexcept |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivatenoexcept |
|
inlineprivatenoexcept |
|
inlineprivatenoexcept |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlinenoexcept |
returns the maximum possible number of elements
|
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
access specified array element
|
inline |
access specified array element
|
inline |
access specified object element
|
inline |
access specified object element
|
inlinestatic |
|
inlinestatic |
deserialize from a compatible input
|
inlinestatic |
deserialize from a pair of character iterators
|
inlineprivate |
|
inline |
applies a JSON patch
|
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 |
returns an iterator to the reverse-beginning
|
inlinenoexcept |
returns an iterator to the reverse-beginning
|
inlinenoexcept |
returns an iterator to the reverse-end
|
inlinenoexcept |
returns an iterator to the reverse-end
|
inlinestatic |
generate SAX events
|
inlinestatic |
generate SAX events
|
inlinestatic |
generate SAX events
|
inlineprivate |
|
inlinenoexcept |
returns the number of elements
|
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 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 |
unflatten a previously flattened JSON value
|
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
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
comparison: not equal
|
friend |
comparison: not equal
|
friend |
comparison: not equal
|
friend |
comparison: less than
|
friend |
comparison: less than
|
friend |
comparison: less than
|
friend |
deserialize from stream
j << i;
with i >> j;
.
|
friend |
serialize to stream
|
friend |
comparison: less than or equal
|
friend |
comparison: less than or equal
|
friend |
comparison: less than or equal
|
friend |
comparison: equal
|
friend |
comparison: equal
|
friend |
comparison: equal
|
friend |
comparison: greater than
|
friend |
comparison: greater than
|
friend |
comparison: greater than
|
friend |
comparison: greater than or equal
|
friend |
comparison: greater than or equal
|
friend |
comparison: greater than or equal
|
friend |
serialize to stream
j >> o;
with o << j;
.
|
friend |
deserialize from stream
exchanges the values
|
private |
|
private |
|
private |
JSON_PRIVATE_UNLESS_TESTED nlohmann::basic_json::__pad3__ |
|
private |
|
private |
json_value nlohmann::basic_json::m_value = {} |
|
private |
|
private |
|
private |
|
private |