|
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...
|
|
|
Direct access to the stored value of a JSON value.
|
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...
|
|
|
Access to the JSON value.
|
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...
|
|
|
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...
|
|
|
checks whether the container is empty.
- See also
- https://json.nlohmann.me/api/basic_json/empty/
returns the number of elements - See also
- https://json.nlohmann.me/api/basic_json/size/
returns the maximum possible number of elements - See also
- https://json.nlohmann.me/api/basic_json/max_size/
|
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...
|
|
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...
|
|
|
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) |
|
namespace for Niels Lohmann
a class to store JSON values
- See also
- https://json.nlohmann.me/api/basic_json/
-
https://github.com/nlohmann
- Since
- version 1.0.0
a class to store JSON values
- Since
- version 1.0.0
Definition at line 3393 of file json.hpp.
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>
get a value (implicit)
Implicit type conversion between the JSON value and a compatible value. The call is realized by calling get() const.
- Template Parameters
-
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 . |
- Returns
- copy of the JSON value, converted to type ValueType
- Exceptions
-
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}
- Since
- version 1.0.0
Definition at line 21061 of file json.hpp.