Goby3  3.1.5a
2024.05.23
basic_json Class Reference

namespace for Niels Lohmann More...

#include <goby/util/thirdparty/nlohmann/json.hpp>

Public Types

using value_t = detail::value_t
 
using json_pointer = ::nlohmann::json_pointer< StringType >
 JSON Pointer, see nlohmann::json_pointer. More...
 
template<typename T , typename SFINAE >
using json_serializer = JSONSerializer< T, SFINAE >
 
using error_handler_t = detail::error_handler_t
 how to treat decoding errors More...
 
using cbor_tag_handler_t = detail::cbor_tag_handler_t
 how to treat CBOR tags 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_sax_t = json_sax< basic_json >
 SAX interface type, see nlohmann::json_sax. More...
 
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...
 

Public Member Functions

const JSON_HEDLEY_RETURNS_NON_NULL chartype_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...
 
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...
 
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...
 

Public Attributes

JSON_PRIVATE_UNLESS_TESTED __pad4__: value_t m_type = value_t::null
 
json_value m_value = {}
 the value of the current element More...
 

Friends

template<detail::value_t >
struct detail::external_constructor
 
template<typename >
class ::nlohmann::json_pointer
 
template<typename BasicJsonType , typename InputType >
class ::nlohmann::detail::parser
 
template<typename BasicJsonType >
class ::nlohmann::detail::iter_impl
 
template<typename BasicJsonType , typename CharType >
class ::nlohmann::detail::binary_writer
 
template<typename BasicJsonType , typename InputType , typename SAX >
class ::nlohmann::detail::binary_reader
 
template<typename BasicJsonType >
class ::nlohmann::detail::json_sax_dom_parser
 
template<typename BasicJsonType >
class ::nlohmann::detail::json_sax_dom_callback_parser
 
class ::nlohmann::detail::exception
 
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

Classes to implement user-defined 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_jsonoperator= (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

Functions to inspect the type of a JSON value.

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

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_tget_binary ()
 get a binary value More...
 
const binary_tget_binary () const
 get a binary value More...
 

element access

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...
 

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.

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, boolemplace (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

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

return flattened JSON value

See also
https://json.nlohmann.me/api/basic_json/flatten/

unflatten a previously flattened JSON value

See also
https://json.nlohmann.me/api/basic_json/unflatten/
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...
 

Detailed Description

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.

Member Typedef Documentation

◆ allocator_type

using basic_json::allocator_type = AllocatorType<basic_json>

the allocator type

Definition at line 19395 of file json.hpp.

◆ array_t

using basic_json::array_t = ArrayType<basic_json, AllocatorType<basic_json> >

a type for an array

See also
https://json.nlohmann.me/api/basic_json/array_t/

Definition at line 19519 of file json.hpp.

◆ binary_t

using basic_json::binary_t = nlohmann::byte_container_with_subtype<BinaryType>

a type for a packed binary type

See also
https://json.nlohmann.me/api/basic_json/binary_t/

Definition at line 19543 of file json.hpp.

◆ boolean_t

using basic_json::boolean_t = BooleanType

a type for a boolean

See also
https://json.nlohmann.me/api/basic_json/boolean_t/

Definition at line 19527 of file json.hpp.

◆ cbor_tag_handler_t

how to treat CBOR tags

Definition at line 19346 of file json.hpp.

◆ const_iterator

using basic_json::const_iterator = iter_impl<const basic_json>

a const iterator for a basic_json container

Definition at line 19405 of file json.hpp.

◆ const_pointer

using basic_json::const_pointer = typename std::allocator_traits<allocator_type>::const_pointer

the type of an element const pointer

Definition at line 19400 of file json.hpp.

◆ const_reference

the type of an element const reference

Definition at line 19387 of file json.hpp.

◆ const_reverse_iterator

using basic_json::const_reverse_iterator = json_reverse_iterator<typename basic_json::const_iterator>

a const reverse iterator for a basic_json container

Definition at line 19409 of file json.hpp.

◆ default_object_comparator_t

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.

See also
https://json.nlohmann.me/api/basic_json/default_object_comparator_t/

Definition at line 19506 of file json.hpp.

◆ difference_type

using basic_json::difference_type = std::ptrdiff_t

a type to represent differences between iterators

Definition at line 19390 of file json.hpp.

◆ error_handler_t

how to treat decoding errors

Definition at line 19344 of file json.hpp.

◆ exception

Definition at line 19362 of file json.hpp.

◆ initializer_list_t

helper type for initializer lists of basic_json values

Definition at line 19348 of file json.hpp.

◆ input_format_t

Definition at line 19350 of file json.hpp.

◆ invalid_iterator

◆ iterator

using basic_json::iterator = iter_impl<basic_json>

an iterator for a basic_json container

Definition at line 19403 of file json.hpp.

◆ json_pointer

using basic_json::json_pointer = ::nlohmann::json_pointer<StringType>

JSON Pointer, see nlohmann::json_pointer.

Definition at line 19340 of file json.hpp.

◆ json_sax_t

SAX interface type, see nlohmann::json_sax.

Definition at line 19352 of file json.hpp.

◆ json_serializer

template<typename T , typename SFINAE >
using basic_json::json_serializer = JSONSerializer<T, SFINAE>

Definition at line 19342 of file json.hpp.

◆ number_float_t

using basic_json::number_float_t = NumberFloatType

a type for a number (floating-point)

See also
https://json.nlohmann.me/api/basic_json/number_float_t/

Definition at line 19539 of file json.hpp.

◆ number_integer_t

using basic_json::number_integer_t = NumberIntegerType

a type for a number (integer)

See also
https://json.nlohmann.me/api/basic_json/number_integer_t/

Definition at line 19531 of file json.hpp.

◆ number_unsigned_t

using basic_json::number_unsigned_t = NumberUnsignedType

a type for a number (unsigned)

See also
https://json.nlohmann.me/api/basic_json/number_unsigned_t/

Definition at line 19535 of file json.hpp.

◆ object_comparator_t

◆ object_t

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

See also
https://json.nlohmann.me/api/basic_json/object_t/

Definition at line 19515 of file json.hpp.

◆ other_error

Definition at line 19367 of file json.hpp.

◆ out_of_range

Definition at line 19366 of file json.hpp.

◆ parse_error

Definition at line 19363 of file json.hpp.

◆ parse_event_t

◆ parser_callback_t

◆ pointer

using basic_json::pointer = typename std::allocator_traits<allocator_type>::pointer

the type of an element pointer

Definition at line 19398 of file json.hpp.

◆ reference

the type of an element reference

Definition at line 19385 of file json.hpp.

◆ reverse_iterator

using basic_json::reverse_iterator = json_reverse_iterator<typename basic_json::iterator>

a reverse iterator for a basic_json container

Definition at line 19407 of file json.hpp.

◆ size_type

using basic_json::size_type = std::size_t

a type to represent container sizes

Definition at line 19392 of file json.hpp.

◆ string_t

using basic_json::string_t = StringType

a type for a string

See also
https://json.nlohmann.me/api/basic_json/string_t/

Definition at line 19523 of file json.hpp.

◆ type_error

Definition at line 19365 of file json.hpp.

◆ value_t

Definition at line 19338 of file json.hpp.

◆ value_type

the type of elements in a basic_json container

Definition at line 19382 of file json.hpp.

Constructor & Destructor Documentation

◆ basic_json() [1/10]

basic_json::basic_json ( const value_t  v)
inline

create an empty value with a given type

See also
https://json.nlohmann.me/api/basic_json/basic_json/

Definition at line 19983 of file json.hpp.

◆ basic_json() [2/10]

basic_json::basic_json ( std::nullptr_t  = nullptr)
inlinenoexcept

create a null object

See also
https://json.nlohmann.me/api/basic_json/basic_json/

Definition at line 19991 of file json.hpp.

◆ basic_json() [3/10]

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::basic_json ( CompatibleType &&  val)
inlinenoexcept

create a JSON value from compatible types

See also
https://json.nlohmann.me/api/basic_json/basic_json/

Definition at line 20003 of file json.hpp.

◆ basic_json() [4/10]

template<typename BasicJsonType , detail::enable_if_t< detail::is_basic_json< BasicJsonType >::value &&!std::is_same< basic_json, BasicJsonType >::value, int > = 0>
basic_json::basic_json ( const BasicJsonType &  val)
inline

create a JSON value from an existing one

See also
https://json.nlohmann.me/api/basic_json/basic_json/

Definition at line 20017 of file json.hpp.

◆ basic_json() [5/10]

basic_json::basic_json ( initializer_list_t  init,
bool  type_deduction = true,
value_t  manual_type = value_t::array 
)
inline

create a container (array or object) from an initializer list

See also
https://json.nlohmann.me/api/basic_json/basic_json/

Definition at line 20070 of file json.hpp.

◆ basic_json() [6/10]

basic_json::basic_json ( size_type  cnt,
const basic_json val 
)
inline

construct an array with count copies of given value

See also
https://json.nlohmann.me/api/basic_json/basic_json/

Definition at line 20185 of file json.hpp.

◆ basic_json() [7/10]

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::basic_json ( InputIT  first,
InputIT  last 
)
inline

construct a JSON container given an iterator range

See also
https://json.nlohmann.me/api/basic_json/basic_json/

Definition at line 20198 of file json.hpp.

◆ basic_json() [8/10]

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::basic_json ( const JsonRef &  ref)
inline

Definition at line 20308 of file json.hpp.

◆ basic_json() [9/10]

basic_json::basic_json ( const basic_json other)
inline

copy constructor

See also
https://json.nlohmann.me/api/basic_json/basic_json/

Definition at line 20312 of file json.hpp.

◆ basic_json() [10/10]

basic_json::basic_json ( basic_json &&  other)
inlinenoexcept

move constructor

See also
https://json.nlohmann.me/api/basic_json/basic_json/

Definition at line 20380 of file json.hpp.

◆ ~basic_json()

basic_json::~basic_json ( )
inlinenoexcept

destructor

See also
https://json.nlohmann.me/api/basic_json/~basic_json/

Definition at line 20418 of file json.hpp.

Member Function Documentation

◆ array()

static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json basic_json::array ( initializer_list_t  init = {})
inlinestatic

explicitly create an array from an initializer list

See also
https://json.nlohmann.me/api/basic_json/array/

Definition at line 20170 of file json.hpp.

◆ at() [1/7]

const_reference basic_json::at ( const json_pointer ptr) const
inline

access specified element via JSON Pointer

See also
https://json.nlohmann.me/api/basic_json/at/

Definition at line 23807 of file json.hpp.

◆ at() [2/7]

reference basic_json::at ( const typename object_t::key_type &  key)
inline

access specified object element with bounds checking

See also
https://json.nlohmann.me/api/basic_json/at/

Definition at line 21150 of file json.hpp.

◆ at() [3/7]

const_reference basic_json::at ( const typename object_t::key_type &  key) const
inline

access specified object element with bounds checking

See also
https://json.nlohmann.me/api/basic_json/at/

Definition at line 21188 of file json.hpp.

◆ at() [4/7]

template<class KeyType , detail::enable_if_t< detail::is_usable_as_basic_json_key_type< basic_json_t, KeyType >::value, int > = 0>
reference basic_json::at ( KeyType &&  key)
inline

access specified object element with bounds checking

See also
https://json.nlohmann.me/api/basic_json/at/

Definition at line 21170 of file json.hpp.

◆ at() [5/7]

template<class KeyType , detail::enable_if_t< detail::is_usable_as_basic_json_key_type< basic_json_t, KeyType >::value, int > = 0>
const_reference basic_json::at ( KeyType &&  key) const
inline

access specified object element with bounds checking

See also
https://json.nlohmann.me/api/basic_json/at/

Definition at line 21208 of file json.hpp.

◆ at() [6/7]

reference basic_json::at ( size_type  idx)
inline

access specified array element with bounds checking

See also
https://json.nlohmann.me/api/basic_json/at/

Definition at line 21104 of file json.hpp.

◆ at() [7/7]

const_reference basic_json::at ( size_type  idx) const
inline

access specified array element with bounds checking

See also
https://json.nlohmann.me/api/basic_json/at/

Definition at line 21127 of file json.hpp.

◆ back() [1/2]

reference basic_json::back ( )
inline

access the last element

See also
https://json.nlohmann.me/api/basic_json/back/

Definition at line 21574 of file json.hpp.

◆ back() [2/2]

const_reference basic_json::back ( ) const
inline

access the last element

See also
https://json.nlohmann.me/api/basic_json/back/

Definition at line 21583 of file json.hpp.

◆ binary() [1/4]

static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json basic_json::binary ( const typename binary_t::container_type &  init)
inlinestatic

explicitly create a binary array (without subtype)

See also
https://json.nlohmann.me/api/basic_json/binary/

Definition at line 20126 of file json.hpp.

◆ binary() [2/4]

static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json basic_json::binary ( const typename binary_t::container_type &  init,
typename binary_t::subtype_type  subtype 
)
inlinestatic

explicitly create a binary array (with subtype)

See also
https://json.nlohmann.me/api/basic_json/binary/

Definition at line 20137 of file json.hpp.

◆ binary() [3/4]

static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json basic_json::binary ( typename binary_t::container_type &&  init)
inlinestatic

explicitly create a binary array

See also
https://json.nlohmann.me/api/basic_json/binary/

Definition at line 20148 of file json.hpp.

◆ binary() [4/4]

static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json basic_json::binary ( typename binary_t::container_type &&  init,
typename binary_t::subtype_type  subtype 
)
inlinestatic

explicitly create a binary array (with subtype)

See also
https://json.nlohmann.me/api/basic_json/binary/

Definition at line 20159 of file json.hpp.

◆ contains() [1/3]

bool basic_json::contains ( const json_pointer ptr) const
inline

check the existence of an element in a JSON object given a JSON pointer

See also
https://json.nlohmann.me/api/basic_json/contains/

Definition at line 21912 of file json.hpp.

◆ contains() [2/3]

bool basic_json::contains ( const typename object_t::key_type &  key) const
inline

check the existence of an element in a JSON object

See also
https://json.nlohmann.me/api/basic_json/contains/

Definition at line 21896 of file json.hpp.

◆ contains() [3/3]

template<class KeyType , detail::enable_if_t< detail::is_usable_as_basic_json_key_type< basic_json_t, KeyType >::value, int > = 0>
bool basic_json::contains ( KeyType &&  key) const
inline

check the existence of an element in a JSON object

See also
https://json.nlohmann.me/api/basic_json/contains/

Definition at line 21905 of file json.hpp.

◆ count() [1/2]

size_type basic_json::count ( const typename object_t::key_type &  key) const
inline

returns the number of occurrences of a key in a JSON object

See also
https://json.nlohmann.me/api/basic_json/count/

Definition at line 21878 of file json.hpp.

◆ count() [2/2]

template<class KeyType , detail::enable_if_t< detail::is_usable_as_basic_json_key_type< basic_json_t, KeyType >::value, int > = 0>
size_type basic_json::count ( KeyType &&  key) const
inline

returns the number of occurrences of a key in a JSON object

See also
https://json.nlohmann.me/api/basic_json/count/

Definition at line 21888 of file json.hpp.

◆ diff()

static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json basic_json::diff ( const basic_json source,
const basic_json target,
const std::string &  path = "" 
)
inlinestatic

creates a diff as a JSON patch

See also
https://json.nlohmann.me/api/basic_json/diff/

Definition at line 24127 of file json.hpp.

◆ dump()

string_t basic_json::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
inline

serialization

See also
https://json.nlohmann.me/api/basic_json/dump/

Definition at line 20437 of file json.hpp.

◆ emplace()

template<class... Args>
std::pair<iterator, bool> basic_json::emplace ( Args &&...  args)
inline

add an object to an object if key does not exist

See also
https://json.nlohmann.me/api/basic_json/emplace/

Definition at line 22404 of file json.hpp.

◆ emplace_back()

template<class... Args>
reference basic_json::emplace_back ( Args &&...  args)
inline

add an object to an array

See also
https://json.nlohmann.me/api/basic_json/emplace_back/

Definition at line 22379 of file json.hpp.

◆ erase() [1/5]

void basic_json::erase ( const size_type  idx)
inline

remove element from a JSON array given an index

See also
https://json.nlohmann.me/api/basic_json/erase/

Definition at line 21788 of file json.hpp.

◆ erase() [2/5]

size_type basic_json::erase ( const typename object_t::key_type &  key)
inline

remove element from a JSON object given a key

See also
https://json.nlohmann.me/api/basic_json/erase/

Definition at line 21770 of file json.hpp.

◆ erase() [3/5]

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 basic_json::erase ( IteratorType  first,
IteratorType  last 
)
inline

remove elements given an iterator range

See also
https://json.nlohmann.me/api/basic_json/erase/

Definition at line 21665 of file json.hpp.

◆ erase() [4/5]

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 basic_json::erase ( IteratorType  pos)
inline

remove element given an iterator

See also
https://json.nlohmann.me/api/basic_json/erase/

Definition at line 21595 of file json.hpp.

◆ erase() [5/5]

template<class KeyType , detail::enable_if_t< detail::is_usable_as_basic_json_key_type< basic_json_t, KeyType >::value, int > = 0>
size_type basic_json::erase ( KeyType &&  key)
inline

remove element from a JSON object given a key

See also
https://json.nlohmann.me/api/basic_json/erase/

Definition at line 21781 of file json.hpp.

◆ find() [1/4]

iterator basic_json::find ( const typename object_t::key_type &  key)
inline

find an element in a JSON object

See also
https://json.nlohmann.me/api/basic_json/find/

Definition at line 21818 of file json.hpp.

◆ find() [2/4]

const_iterator basic_json::find ( const typename object_t::key_type &  key) const
inline

find an element in a JSON object

See also
https://json.nlohmann.me/api/basic_json/find/

Definition at line 21832 of file json.hpp.

◆ find() [3/4]

template<class KeyType , detail::enable_if_t< detail::is_usable_as_basic_json_key_type< basic_json_t, KeyType >::value, int > = 0>
iterator basic_json::find ( KeyType &&  key)
inline

find an element in a JSON object

See also
https://json.nlohmann.me/api/basic_json/find/

Definition at line 21848 of file json.hpp.

◆ find() [4/4]

template<class KeyType , detail::enable_if_t< detail::is_usable_as_basic_json_key_type< basic_json_t, KeyType >::value, int > = 0>
const_iterator basic_json::find ( KeyType &&  key) const
inline

find an element in a JSON object

See also
https://json.nlohmann.me/api/basic_json/find/

Definition at line 21864 of file json.hpp.

◆ from_bjdata() [1/2]

template<typename InputType >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json basic_json::from_bjdata ( InputType &&  i,
const bool  strict = true,
const bool  allow_exceptions = true 
)
inlinestatic

create a JSON value from an input in BJData format

See also
https://json.nlohmann.me/api/basic_json/from_bjdata/

Definition at line 23675 of file json.hpp.

◆ from_bjdata() [2/2]

template<typename IteratorType >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json basic_json::from_bjdata ( IteratorType  first,
IteratorType  last,
const bool  strict = true,
const bool  allow_exceptions = true 
)
inlinestatic

create a JSON value from an input in BJData format

See also
https://json.nlohmann.me/api/basic_json/from_bjdata/

Definition at line 23690 of file json.hpp.

◆ from_bson() [1/4]

template<typename T >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json basic_json::from_bson ( const T *  ptr,
std::size_t  len,
const bool  strict = true,
const bool  allow_exceptions = true 
)
inlinestatic

Definition at line 23734 of file json.hpp.

◆ from_bson() [2/4]

static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json basic_json::from_bson ( detail::span_input_adapter &&  i,
const bool  strict = true,
const bool  allow_exceptions = true 
)
inlinestatic

Definition at line 23743 of file json.hpp.

◆ from_bson() [3/4]

template<typename InputType >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json basic_json::from_bson ( InputType &&  i,
const bool  strict = true,
const bool  allow_exceptions = true 
)
inlinestatic

create a JSON value from an input in BSON format

See also
https://json.nlohmann.me/api/basic_json/from_bson/

Definition at line 23705 of file json.hpp.

◆ from_bson() [4/4]

template<typename IteratorType >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json basic_json::from_bson ( IteratorType  first,
IteratorType  last,
const bool  strict = true,
const bool  allow_exceptions = true 
)
inlinestatic

create a JSON value from an input in BSON format

See also
https://json.nlohmann.me/api/basic_json/from_bson/

Definition at line 23720 of file json.hpp.

◆ from_cbor() [1/4]

template<typename T >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json 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 
)
inlinestatic

Definition at line 23538 of file json.hpp.

◆ from_cbor() [2/4]

static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json 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 
)
inlinestatic

Definition at line 23549 of file json.hpp.

◆ from_cbor() [3/4]

template<typename InputType >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json 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 
)
inlinestatic

create a JSON value from an input in CBOR format

See also
https://json.nlohmann.me/api/basic_json/from_cbor/

Definition at line 23507 of file json.hpp.

◆ from_cbor() [4/4]

template<typename IteratorType >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json 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 
)
inlinestatic

create a JSON value from an input in CBOR format

See also
https://json.nlohmann.me/api/basic_json/from_cbor/

Definition at line 23523 of file json.hpp.

◆ from_msgpack() [1/4]

template<typename T >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json basic_json::from_msgpack ( const T *  ptr,
std::size_t  len,
const bool  strict = true,
const bool  allow_exceptions = true 
)
inlinestatic

Definition at line 23595 of file json.hpp.

◆ from_msgpack() [2/4]

static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json basic_json::from_msgpack ( detail::span_input_adapter &&  i,
const bool  strict = true,
const bool  allow_exceptions = true 
)
inlinestatic

Definition at line 23604 of file json.hpp.

◆ from_msgpack() [3/4]

template<typename InputType >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json basic_json::from_msgpack ( InputType &&  i,
const bool  strict = true,
const bool  allow_exceptions = true 
)
inlinestatic

create a JSON value from an input in MessagePack format

See also
https://json.nlohmann.me/api/basic_json/from_msgpack/

Definition at line 23566 of file json.hpp.

◆ from_msgpack() [4/4]

template<typename IteratorType >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json basic_json::from_msgpack ( IteratorType  first,
IteratorType  last,
const bool  strict = true,
const bool  allow_exceptions = true 
)
inlinestatic

create a JSON value from an input in MessagePack format

See also
https://json.nlohmann.me/api/basic_json/from_msgpack/

Definition at line 23581 of file json.hpp.

◆ from_ubjson() [1/4]

template<typename T >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json basic_json::from_ubjson ( const T *  ptr,
std::size_t  len,
const bool  strict = true,
const bool  allow_exceptions = true 
)
inlinestatic

Definition at line 23649 of file json.hpp.

◆ from_ubjson() [2/4]

static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json basic_json::from_ubjson ( detail::span_input_adapter &&  i,
const bool  strict = true,
const bool  allow_exceptions = true 
)
inlinestatic

Definition at line 23658 of file json.hpp.

◆ from_ubjson() [3/4]

template<typename InputType >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json basic_json::from_ubjson ( InputType &&  i,
const bool  strict = true,
const bool  allow_exceptions = true 
)
inlinestatic

create a JSON value from an input in UBJSON format

See also
https://json.nlohmann.me/api/basic_json/from_ubjson/

Definition at line 23620 of file json.hpp.

◆ from_ubjson() [4/4]

template<typename IteratorType >
static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json basic_json::from_ubjson ( IteratorType  first,
IteratorType  last,
const bool  strict = true,
const bool  allow_exceptions = true 
)
inlinestatic

create a JSON value from an input in UBJSON format

See also
https://json.nlohmann.me/api/basic_json/from_ubjson/

Definition at line 23635 of file json.hpp.

◆ front()

const_reference basic_json::front ( ) const
inline

access the first element

See also
https://json.nlohmann.me/api/basic_json/front/

Definition at line 21567 of file json.hpp.

◆ get() [1/2]

template<typename ValueTypeCV , typename ValueType = detail::uncvref_t<ValueTypeCV>>
auto basic_json::get ( ) const -> decltype(std::declval<const basic_json_t&>().template get_impl<ValueType>(detail::priority_tag<4>
inlinenoexcept

get a (pointer) value (explicit)

Performs explicit type conversion between the JSON value and a compatible value if required.

Template Parameters
ValueTypeCVthe provided value type
ValueTypethe returned value type
Returns
copy of the JSON value, converted to
Template Parameters
ValueTypeif necessary
Exceptions
whatjson_serializer<ValueType> from_json() method throws if conversion is required
Since
version 2.1.0

Definition at line 20909 of file json.hpp.

◆ get() [2/2]

template<typename PointerType , typename std::enable_if< std::is_pointer< PointerType >::value, int >::type = 0>
auto basic_json::get ( ) -> decltype(std::declval<basic_json_t&>().template get_ptr<PointerType>())
inlinenoexcept

get a pointer value (explicit)

Explicit pointer access to the internally stored JSON value. No copies are made.

Warning
The pointer becomes invalid if the underlying JSON object changes.
Template Parameters
PointerTypepointer type; must be a pointer to array_t, object_t, string_t, boolean_t, number_integer_t, number_unsigned_t, or number_float_t.
Returns
pointer to the internally stored JSON value if the requested pointer type PointerType fits to the JSON value; 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}

See also
see get_ptr() for explicit pointer-member access
Since
version 1.0.0

Definition at line 20950 of file json.hpp.

◆ get_allocator()

static allocator_type basic_json::get_allocator ( )
inlinestatic

returns the allocator associated with the container

See also
https://json.nlohmann.me/api/basic_json/get_allocator/

Definition at line 19416 of file json.hpp.

◆ get_binary() [1/2]

binary_t& basic_json::get_binary ( )
inline

get a binary value

See also
https://json.nlohmann.me/api/basic_json/get_binary/

Definition at line 21069 of file json.hpp.

◆ get_binary() [2/2]

const binary_t& basic_json::get_binary ( ) const
inline

get a binary value

See also
https://json.nlohmann.me/api/basic_json/get_binary/

Definition at line 21081 of file json.hpp.

◆ get_impl()

return basic_json::get_impl ( detail::priority_tag< 4 > {}  )

◆ get_ptr() [1/2]

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 basic_json::get_ptr ( ) const -> decltype(std::declval<const basic_json_t&>().get_impl_ptr(std::declval<PointerType>()))
inlineconstexprnoexcept

get a pointer value (implicit)

See also
https://json.nlohmann.me/api/basic_json/get_ptr/

Definition at line 20721 of file json.hpp.

◆ get_ptr() [2/2]

template<typename PointerType , typename std::enable_if< std::is_pointer< PointerType >::value, int >::type = 0>
auto basic_json::get_ptr ( ) -> decltype(std::declval<basic_json_t&>().get_impl_ptr(std::declval<PointerType>()))
inlinenoexcept

get a pointer value (implicit)

See also
https://json.nlohmann.me/api/basic_json/get_ptr/

Definition at line 20710 of file json.hpp.

◆ get_ref() [1/2]

template<typename ReferenceType , typename std::enable_if< std::is_reference< ReferenceType >::value, int >::type = 0>
ReferenceType basic_json::get_ref ( )
inline

get a reference value (implicit)

See also
https://json.nlohmann.me/api/basic_json/get_ref/

Definition at line 20999 of file json.hpp.

◆ get_ref() [2/2]

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 basic_json::get_ref ( ) const
inline

get a reference value (implicit)

See also
https://json.nlohmann.me/api/basic_json/get_ref/

Definition at line 21010 of file json.hpp.

◆ get_to() [1/3]

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 basic_json::get_to ( T(&)  v[N]) const
inlinenoexcept

Definition at line 20987 of file json.hpp.

◆ get_to() [2/3]

template<typename ValueType , detail::enable_if_t< detail::is_basic_json< ValueType >::value, int > = 0>
ValueType& basic_json::get_to ( ValueType &  v) const
inline

Definition at line 20976 of file json.hpp.

◆ get_to() [3/3]

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& basic_json::get_to ( ValueType &  v) const
inlinenoexcept

get a value (explicit)

See also
https://json.nlohmann.me/api/basic_json/get_to/

Definition at line 20963 of file json.hpp.

◆ insert() [1/6]

void basic_json::insert ( const_iterator  first,
const_iterator  last 
)
inline

inserts range of elements into object

See also
https://json.nlohmann.me/api/basic_json/insert/

Definition at line 22553 of file json.hpp.

◆ insert() [2/6]

iterator basic_json::insert ( const_iterator  pos,
basic_json &&  val 
)
inline

inserts element into array

See also
https://json.nlohmann.me/api/basic_json/insert/

Definition at line 22475 of file json.hpp.

◆ insert() [3/6]

iterator basic_json::insert ( const_iterator  pos,
const basic_json val 
)
inline

inserts element into array

See also
https://json.nlohmann.me/api/basic_json/insert/

Definition at line 22455 of file json.hpp.

◆ insert() [4/6]

iterator basic_json::insert ( const_iterator  pos,
const_iterator  first,
const_iterator  last 
)
inline

inserts range of elements into array

See also
https://json.nlohmann.me/api/basic_json/insert/

Definition at line 22502 of file json.hpp.

◆ insert() [5/6]

iterator basic_json::insert ( const_iterator  pos,
initializer_list_t  ilist 
)
inline

inserts elements from initializer list into array

See also
https://json.nlohmann.me/api/basic_json/insert/

Definition at line 22533 of file json.hpp.

◆ insert() [6/6]

iterator basic_json::insert ( const_iterator  pos,
size_type  cnt,
const basic_json val 
)
inline

inserts copies of element into array

See also
https://json.nlohmann.me/api/basic_json/insert/

Definition at line 22482 of file json.hpp.

◆ insert_iterator()

template<typename... Args>
iterator basic_json::insert_iterator ( const_iterator  pos,
Args &&...  args 
)
inline

Helper for insertion of an iterator

Note
: This uses std::distance to support GCC 4.8, see https://github.com/nlohmann/json/pull/1257

Definition at line 22436 of file json.hpp.

◆ is_array()

constexpr bool basic_json::is_array ( ) const
inlineconstexprnoexcept

return whether value is an array

See also
https://json.nlohmann.me/api/basic_json/is_array/

Definition at line 20529 of file json.hpp.

◆ is_binary()

constexpr bool basic_json::is_binary ( ) const
inlineconstexprnoexcept

return whether value is a binary array

See also
https://json.nlohmann.me/api/basic_json/is_binary/

Definition at line 20543 of file json.hpp.

◆ is_boolean()

constexpr bool basic_json::is_boolean ( ) const
inlineconstexprnoexcept

return whether value is a boolean

See also
https://json.nlohmann.me/api/basic_json/is_boolean/

Definition at line 20487 of file json.hpp.

◆ is_discarded()

constexpr bool basic_json::is_discarded ( ) const
inlineconstexprnoexcept

return whether value is discarded

See also
https://json.nlohmann.me/api/basic_json/is_discarded/

Definition at line 20550 of file json.hpp.

◆ is_null()

constexpr bool basic_json::is_null ( ) const
inlineconstexprnoexcept

return whether value is null

See also
https://json.nlohmann.me/api/basic_json/is_null/

Definition at line 20480 of file json.hpp.

◆ is_number()

constexpr bool basic_json::is_number ( ) const
inlineconstexprnoexcept

return whether value is a number

See also
https://json.nlohmann.me/api/basic_json/is_number/

Definition at line 20494 of file json.hpp.

◆ is_number_float()

constexpr bool basic_json::is_number_float ( ) const
inlineconstexprnoexcept

return whether value is a floating-point number

See also
https://json.nlohmann.me/api/basic_json/is_number_float/

Definition at line 20515 of file json.hpp.

◆ is_number_integer()

constexpr bool basic_json::is_number_integer ( ) const
inlineconstexprnoexcept

return whether value is an integer number

See also
https://json.nlohmann.me/api/basic_json/is_number_integer/

Definition at line 20501 of file json.hpp.

◆ is_number_unsigned()

constexpr bool basic_json::is_number_unsigned ( ) const
inlineconstexprnoexcept

return whether value is an unsigned integer number

See also
https://json.nlohmann.me/api/basic_json/is_number_unsigned/

Definition at line 20508 of file json.hpp.

◆ is_object()

constexpr bool basic_json::is_object ( ) const
inlineconstexprnoexcept

return whether value is an object

See also
https://json.nlohmann.me/api/basic_json/is_object/

Definition at line 20522 of file json.hpp.

◆ is_primitive()

constexpr bool basic_json::is_primitive ( ) const
inlineconstexprnoexcept

return whether type is primitive

See also
https://json.nlohmann.me/api/basic_json/is_primitive/

Definition at line 20466 of file json.hpp.

◆ is_string()

constexpr bool basic_json::is_string ( ) const
inlineconstexprnoexcept

return whether value is a string

See also
https://json.nlohmann.me/api/basic_json/is_string/

Definition at line 20536 of file json.hpp.

◆ is_structured()

constexpr bool basic_json::is_structured ( ) const
inlineconstexprnoexcept

return whether type is structured

See also
https://json.nlohmann.me/api/basic_json/is_structured/

Definition at line 20473 of file json.hpp.

◆ JSON_HEDLEY_DEPRECATED_FOR() [1/4]

template<typename BasicJsonType , detail::enable_if_t< detail::is_basic_json< BasicJsonType >::value, int > = 0>
basic_json::JSON_HEDLEY_DEPRECATED_FOR ( 3.11.  0,
basic_json::json_pointer or nlohmann::json_pointer< basic_json::string_t  
) const
inline

access specified element via JSON Pointer

See also
https://json.nlohmann.me/api/basic_json/at/

Definition at line 23785 of file json.hpp.

◆ JSON_HEDLEY_DEPRECATED_FOR() [2/4]

template<typename BasicJsonType , detail::enable_if_t< detail::is_basic_json< BasicJsonType >::value, int > = 0>
basic_json::JSON_HEDLEY_DEPRECATED_FOR ( 3.11.  0,
basic_json::json_pointer or nlohmann::json_pointer< basic_json::string_t  
) const
inline

Definition at line 23799 of file json.hpp.

◆ JSON_HEDLEY_DEPRECATED_FOR() [3/4]

template<typename BasicJsonType , detail::enable_if_t< detail::is_basic_json< BasicJsonType >::value, int > = 0>
basic_json::JSON_HEDLEY_DEPRECATED_FOR ( 3.11.  0,
basic_json::json_pointer or nlohmann::json_pointer< basic_json::string_t  
) const
inline

Definition at line 23771 of file json.hpp.

◆ JSON_HEDLEY_DEPRECATED_FOR() [4/4]

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>
basic_json::JSON_HEDLEY_DEPRECATED_FOR ( 3.11.  0,
basic_json::json_pointer or nlohmann::json_pointer< basic_json::string_t  
) const
inline

access the first element

See also
https://json.nlohmann.me/api/basic_json/front/

Definition at line 21541 of file json.hpp.

◆ merge_patch()

void basic_json::merge_patch ( const basic_json apply_patch)
inline

applies a JSON Merge Patch

See also
https://json.nlohmann.me/api/basic_json/merge_patch/

Definition at line 24269 of file json.hpp.

◆ meta()

static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json basic_json::meta ( )
inlinestatic

returns version information on the library

See also
https://json.nlohmann.me/api/basic_json/meta/

Definition at line 19424 of file json.hpp.

◆ object()

static JSON_HEDLEY_WARN_UNUSED_RESULT basic_json basic_json::object ( initializer_list_t  init = {})
inlinestatic

explicitly create an object from an initializer list

See also
https://json.nlohmann.me/api/basic_json/object/

Definition at line 20178 of file json.hpp.

◆ operator value_t()

constexpr basic_json::operator value_t ( ) const
inlineconstexprnoexcept

return the type of the JSON value (implicit)

See also
https://json.nlohmann.me/api/basic_json/operator_value_t/

Definition at line 20557 of file json.hpp.

◆ operator ValueType()

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 basic_json::operator ValueType ( ) const
inline

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
ValueTypenon-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.302in 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.

◆ operator+=() [1/4]

reference basic_json::operator+= ( basic_json &&  val)
inline

add an object to an array

See also
https://json.nlohmann.me/api/basic_json/operator+=/

Definition at line 22283 of file json.hpp.

◆ operator+=() [2/4]

reference basic_json::operator+= ( const basic_json val)
inline

add an object to an array

See also
https://json.nlohmann.me/api/basic_json/operator+=/

Definition at line 22315 of file json.hpp.

◆ operator+=() [3/4]

reference basic_json::operator+= ( const typename object_t::value_type &  val)
inline

add an object to an object

See also
https://json.nlohmann.me/api/basic_json/operator+=/

Definition at line 22346 of file json.hpp.

◆ operator+=() [4/4]

reference basic_json::operator+= ( initializer_list_t  init)
inline

add an object to an object

See also
https://json.nlohmann.me/api/basic_json/operator+=/

Definition at line 22370 of file json.hpp.

◆ operator=()

basic_json& basic_json::operator= ( basic_json  other)
inlinenoexcept

copy assignment

See also
https://json.nlohmann.me/api/basic_json/operator=/

Definition at line 20397 of file json.hpp.

◆ operator[]() [1/10]

reference basic_json::operator[] ( const json_pointer ptr)
inline

access specified element via JSON Pointer

See also
https://json.nlohmann.me/api/basic_json/operator%5B%5D/

Definition at line 23765 of file json.hpp.

◆ operator[]() [2/10]

const_reference basic_json::operator[] ( const json_pointer ptr) const
inline

access specified element via JSON Pointer

See also
https://json.nlohmann.me/api/basic_json/operator%5B%5D/

Definition at line 23779 of file json.hpp.

◆ operator[]() [3/10]

const_reference basic_json::operator[] ( const typename object_t::key_type &  key) const
inline

access specified object element

See also
https://json.nlohmann.me/api/basic_json/operator%5B%5D/

Definition at line 21307 of file json.hpp.

◆ operator[]() [4/10]

template<class KeyType , detail::enable_if_t< detail::is_usable_as_basic_json_key_type< basic_json_t, KeyType >::value, int > = 0>
reference basic_json::operator[] ( KeyType &&  key)
inline

access specified object element

See also
https://json.nlohmann.me/api/basic_json/operator%5B%5D/

Definition at line 21338 of file json.hpp.

◆ operator[]() [5/10]

template<class KeyType , detail::enable_if_t< detail::is_usable_as_basic_json_key_type< basic_json_t, KeyType >::value, int > = 0>
const_reference basic_json::operator[] ( KeyType &&  key) const
inline

access specified object element

See also
https://json.nlohmann.me/api/basic_json/operator%5B%5D/

Definition at line 21362 of file json.hpp.

◆ operator[]() [6/10]

reference basic_json::operator[] ( size_type  idx)
inline

access specified array element

See also
https://json.nlohmann.me/api/basic_json/operator%5B%5D/

Definition at line 21226 of file json.hpp.

◆ operator[]() [7/10]

const_reference basic_json::operator[] ( size_type  idx) const
inline

access specified array element

See also
https://json.nlohmann.me/api/basic_json/operator%5B%5D/

Definition at line 21272 of file json.hpp.

◆ operator[]() [8/10]

template<typename T >
reference basic_json::operator[] ( T *  key)
inline

Definition at line 21323 of file json.hpp.

◆ operator[]() [9/10]

template<typename T >
const_reference basic_json::operator[] ( T *  key) const
inline

Definition at line 21329 of file json.hpp.

◆ operator[]() [10/10]

reference basic_json::operator[] ( typename object_t::key_type  key)
inline

access specified object element

See also
https://json.nlohmann.me/api/basic_json/operator%5B%5D/

Definition at line 21285 of file json.hpp.

◆ patch()

basic_json basic_json::patch ( const basic_json json_patch) const
inline

applies a JSON patch to a copy of the current object

See also
https://json.nlohmann.me/api/basic_json/patch/

Definition at line 24117 of file json.hpp.

◆ push_back() [1/3]

void basic_json::push_back ( const basic_json val)
inline

add an object to an array

See also
https://json.nlohmann.me/api/basic_json/push_back/

Definition at line 22291 of file json.hpp.

◆ push_back() [2/3]

void basic_json::push_back ( const typename object_t::value_type &  val)
inline

add an object to an object

See also
https://json.nlohmann.me/api/basic_json/push_back/

Definition at line 22323 of file json.hpp.

◆ push_back() [3/3]

void basic_json::push_back ( initializer_list_t  init)
inline

add an object to an object

See also
https://json.nlohmann.me/api/basic_json/push_back/

Definition at line 22354 of file json.hpp.

◆ sax_parse() [1/3]

template<typename SAX >
static bool basic_json::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 
)
inlinestatic

generate SAX events

See also
https://json.nlohmann.me/api/basic_json/sax_parse/
Deprecated:
This function is deprecated since 3.8.0 and will be removed in version 4.0.0 of the library. Please use sax_parse(ptr, ptr + len) instead.

Definition at line 23287 of file json.hpp.

◆ sax_parse() [2/3]

JSON_PRIVATE_UNLESS_TESTED const_reference bool static SAX bool basic_json::sax_parse ( InputType &&  i,
SAX *  sax,
input_format_t  format = input_format_t::json,
const bool  strict = true,
const bool  ignore_comments = false 
)
inlinestatic

Definition at line 23253 of file json.hpp.

◆ sax_parse() [3/3]

template<class IteratorType , class SAX >
static bool basic_json::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 
)
inlinestatic

generate SAX events

See also
https://json.nlohmann.me/api/basic_json/sax_parse/

Definition at line 23268 of file json.hpp.

◆ swap() [1/6]

void basic_json::swap ( array_t other)
inline

exchanges the values

See also
https://json.nlohmann.me/api/basic_json/swap/

Definition at line 22661 of file json.hpp.

◆ swap() [2/6]

void basic_json::swap ( binary_t other)
inline

exchanges the values

See also
https://json.nlohmann.me/api/basic_json/swap/

Definition at line 22709 of file json.hpp.

◆ swap() [3/6]

void basic_json::swap ( object_t other)
inline

exchanges the values

See also
https://json.nlohmann.me/api/basic_json/swap/

Definition at line 22677 of file json.hpp.

◆ swap() [4/6]

void basic_json::swap ( reference  other)
inlinenoexcept

exchanges the values

See also
https://json.nlohmann.me/api/basic_json/swap/

Definition at line 22632 of file json.hpp.

◆ swap() [5/6]

void basic_json::swap ( string_t other)
inline

exchanges the values

See also
https://json.nlohmann.me/api/basic_json/swap/

Definition at line 22693 of file json.hpp.

◆ swap() [6/6]

void basic_json::swap ( typename binary_t::container_type &  other)
inline

exchanges the values

See also
https://json.nlohmann.me/api/basic_json/swap/

Definition at line 22725 of file json.hpp.

◆ to_bjdata() [1/3]

static std::vector<std::uint8_t> basic_json::to_bjdata ( const basic_json j,
const bool  use_size = false,
const bool  use_type = false 
)
inlinestatic

create a BJData serialization of a given JSON value

See also
https://json.nlohmann.me/api/basic_json/to_bjdata/

Definition at line 23455 of file json.hpp.

◆ to_bjdata() [2/3]

static void basic_json::to_bjdata ( const basic_json j,
detail::output_adapter< char o,
const bool  use_size = false,
const bool  use_type = false 
)
inlinestatic

create a BJData serialization of a given JSON value

See also
https://json.nlohmann.me/api/basic_json/to_bjdata/

Definition at line 23474 of file json.hpp.

◆ to_bjdata() [3/3]

static void basic_json::to_bjdata ( const basic_json j,
detail::output_adapter< std::uint8_t >  o,
const bool  use_size = false,
const bool  use_type = false 
)
inlinestatic

create a BJData serialization of a given JSON value

See also
https://json.nlohmann.me/api/basic_json/to_bjdata/

Definition at line 23466 of file json.hpp.

◆ to_bson() [1/3]

static std::vector<std::uint8_t> basic_json::to_bson ( const basic_json j)
inlinestatic

create a BSON serialization of a given JSON value

See also
https://json.nlohmann.me/api/basic_json/to_bson/

Definition at line 23482 of file json.hpp.

◆ to_bson() [2/3]

static void basic_json::to_bson ( const basic_json j,
detail::output_adapter< char o 
)
inlinestatic

create a BSON serialization of a given JSON value

See also
https://json.nlohmann.me/api/basic_json/to_bson/

Definition at line 23498 of file json.hpp.

◆ to_bson() [3/3]

static void basic_json::to_bson ( const basic_json j,
detail::output_adapter< std::uint8_t >  o 
)
inlinestatic

create a BSON serialization of a given JSON value

See also
https://json.nlohmann.me/api/basic_json/to_bson/

Definition at line 23491 of file json.hpp.

◆ to_cbor() [1/3]

static std::vector<std::uint8_t> basic_json::to_cbor ( const basic_json j)
inlinestatic

create a CBOR serialization of a given JSON value

See also
https://json.nlohmann.me/api/basic_json/to_cbor/

Definition at line 23382 of file json.hpp.

◆ to_cbor() [2/3]

static void basic_json::to_cbor ( const basic_json j,
detail::output_adapter< char o 
)
inlinestatic

create a CBOR serialization of a given JSON value

See also
https://json.nlohmann.me/api/basic_json/to_cbor/

Definition at line 23398 of file json.hpp.

◆ to_cbor() [3/3]

static void basic_json::to_cbor ( const basic_json j,
detail::output_adapter< std::uint8_t >  o 
)
inlinestatic

create a CBOR serialization of a given JSON value

See also
https://json.nlohmann.me/api/basic_json/to_cbor/

Definition at line 23391 of file json.hpp.

◆ to_msgpack() [1/3]

static std::vector<std::uint8_t> basic_json::to_msgpack ( const basic_json j)
inlinestatic

create a MessagePack serialization of a given JSON value

See also
https://json.nlohmann.me/api/basic_json/to_msgpack/

Definition at line 23405 of file json.hpp.

◆ to_msgpack() [2/3]

static void basic_json::to_msgpack ( const basic_json j,
detail::output_adapter< char o 
)
inlinestatic

create a MessagePack serialization of a given JSON value

See also
https://json.nlohmann.me/api/basic_json/to_msgpack/

Definition at line 23421 of file json.hpp.

◆ to_msgpack() [3/3]

static void basic_json::to_msgpack ( const basic_json j,
detail::output_adapter< std::uint8_t >  o 
)
inlinestatic

create a MessagePack serialization of a given JSON value

See also
https://json.nlohmann.me/api/basic_json/to_msgpack/

Definition at line 23414 of file json.hpp.

◆ to_ubjson() [1/3]

static std::vector<std::uint8_t> basic_json::to_ubjson ( const basic_json j,
const bool  use_size = false,
const bool  use_type = false 
)
inlinestatic

create a UBJSON serialization of a given JSON value

See also
https://json.nlohmann.me/api/basic_json/to_ubjson/

Definition at line 23428 of file json.hpp.

◆ to_ubjson() [2/3]

static void basic_json::to_ubjson ( const basic_json j,
detail::output_adapter< char o,
const bool  use_size = false,
const bool  use_type = false 
)
inlinestatic

create a UBJSON serialization of a given JSON value

See also
https://json.nlohmann.me/api/basic_json/to_ubjson/

Definition at line 23447 of file json.hpp.

◆ to_ubjson() [3/3]

static void basic_json::to_ubjson ( const basic_json j,
detail::output_adapter< std::uint8_t >  o,
const bool  use_size = false,
const bool  use_type = false 
)
inlinestatic

create a UBJSON serialization of a given JSON value

See also
https://json.nlohmann.me/api/basic_json/to_ubjson/

Definition at line 23439 of file json.hpp.

◆ type()

constexpr value_t basic_json::type ( ) const
inlineconstexprnoexcept

return the type of the JSON value (explicit)

See also
https://json.nlohmann.me/api/basic_json/type/

Definition at line 20459 of file json.hpp.

◆ type_name()

const JSON_HEDLEY_RETURNS_NON_NULL char* basic_json::type_name ( ) const
inlinenoexcept

return the type as string

See also
https://json.nlohmann.me/api/basic_json/type_name/

Definition at line 23329 of file json.hpp.

◆ update() [1/2]

void basic_json::update ( const_iterator  first,
const_iterator  last,
bool  merge_objects = false 
)
inline

updates a JSON object from another object, overwriting existing keys

See also
https://json.nlohmann.me/api/basic_json/update/

Definition at line 22585 of file json.hpp.

◆ update() [2/2]

void basic_json::update ( const_reference  j,
bool  merge_objects = false 
)
inline

updates a JSON object from another object, overwriting existing keys

See also
https://json.nlohmann.me/api/basic_json/update/

Definition at line 22578 of file json.hpp.

◆ value() [1/6]

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 basic_json::value ( const json_pointer ptr,
const ValueType &  default_value 
) const
inline

access specified object element via JSON Pointer with default value

See also
https://json.nlohmann.me/api/basic_json/value/

Definition at line 21493 of file json.hpp.

◆ value() [2/6]

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 basic_json::value ( const json_pointer ptr,
ValueType &&  default_value 
) const
inline

access specified object element via JSON Pointer with default value

See also
https://json.nlohmann.me/api/basic_json/value/

Definition at line 21518 of file json.hpp.

◆ value() [3/6]

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 basic_json::value ( const typename object_t::key_type &  key,
const ValueType &  default_value 
) const
inline

access specified object element with default value

See also
https://json.nlohmann.me/api/basic_json/value/

Definition at line 21392 of file json.hpp.

◆ value() [4/6]

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 basic_json::value ( const typename object_t::key_type &  key,
ValueType &&  default_value 
) const
inline

access specified object element with default value

See also
https://json.nlohmann.me/api/basic_json/value/

Definition at line 21417 of file json.hpp.

◆ value() [5/6]

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 basic_json::value ( KeyType &&  key,
const ValueType &  default_value 
) const
inline

access specified object element with default value

See also
https://json.nlohmann.me/api/basic_json/value/

Definition at line 21443 of file json.hpp.

◆ value() [6/6]

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 basic_json::value ( KeyType &&  key,
ValueType &&  default_value 
) const
inline

access specified object element via JSON Pointer with default value

See also
https://json.nlohmann.me/api/basic_json/value/

Definition at line 21470 of file json.hpp.

Friends And Related Function Documentation

◆ ::nlohmann::detail::binary_reader

template<typename BasicJsonType , typename InputType , typename SAX >
friend class ::nlohmann::detail::binary_reader
friend

Definition at line 19291 of file json.hpp.

◆ ::nlohmann::detail::binary_writer

template<typename BasicJsonType , typename CharType >
friend class ::nlohmann::detail::binary_writer
friend

Definition at line 19289 of file json.hpp.

◆ ::nlohmann::detail::exception

friend class ::nlohmann::detail::exception
friend

Definition at line 19296 of file json.hpp.

◆ ::nlohmann::detail::iter_impl

template<typename BasicJsonType >
friend class ::nlohmann::detail::iter_impl
friend

Definition at line 19287 of file json.hpp.

◆ ::nlohmann::detail::json_sax_dom_callback_parser

template<typename BasicJsonType >
friend class ::nlohmann::detail::json_sax_dom_callback_parser
friend

Definition at line 19295 of file json.hpp.

◆ ::nlohmann::detail::json_sax_dom_parser

template<typename BasicJsonType >
friend class ::nlohmann::detail::json_sax_dom_parser
friend

Definition at line 19293 of file json.hpp.

◆ ::nlohmann::detail::parser

template<typename BasicJsonType , typename InputType >
friend class ::nlohmann::detail::parser
friend

Definition at line 19284 of file json.hpp.

◆ ::nlohmann::json_pointer

template<typename >
friend class ::nlohmann::json_pointer
friend

Definition at line 19279 of file json.hpp.

◆ detail::external_constructor

template<detail::value_t >
friend struct detail::external_constructor
friend

Definition at line 19276 of file json.hpp.

◆ operator<<

std::istream& operator<< ( basic_json j,
std::istream &  i 
)
friend

deserialize from stream

See also
https://json.nlohmann.me/api/basic_json/operator_gtgt/
Deprecated:
This stream operator is deprecated since 3.0.0 and will be removed in version 4.0.0 of the library. Please use operator>>(std::istream&, basic_json&) instead; that is, replace calls like j << i; with i >> j;.

Definition at line 23307 of file json.hpp.

◆ operator>>

std::istream& operator>> ( std::istream &  i,
basic_json j 
)
friend

deserialize from stream

See also
https://json.nlohmann.me/api/basic_json/operator_gtgt/

Definition at line 23314 of file json.hpp.

◆ swap

void swap ( reference  left,
reference  right 
)
friend

exchanges the values

See also
https://json.nlohmann.me/api/basic_json/swap/

Definition at line 22649 of file json.hpp.

Member Data Documentation

◆ __pad3__

JSON_PRIVATE_UNLESS_TESTED basic_json::__pad3__

Definition at line 22827 of file json.hpp.

◆ __pad4__

JSON_PRIVATE_UNLESS_TESTED basic_json::__pad4__

Definition at line 23362 of file json.hpp.

◆ inverse

Definition at line 22827 of file json.hpp.

◆ m_value

json_value basic_json::m_value = {}

the value of the current element

Definition at line 23365 of file json.hpp.

◆ rhs

Definition at line 22827 of file json.hpp.


The documentation for this class was generated from the following file: