Reference

Namespaces

Name Description
nlohmann namespace for Niels Lohmann

Using Declarations

Name
Unnamed using
Unnamed using

nlohmann namespace

namespace for Niels Lohmann

Types

Name Description
adl_serializer default JSONSerializer template argument
basic_json<>
basic_json a class to store JSON values
byte_container_with_subtype an internal type for a backed binary type
byte_container_with_subtype<vector<unsigned char>>
json_pointer
json_pointer JSON Pointer defines a string syntax for identifying a specific value within a JSON document
ordered_map a minimal map-like container that preserves insertion order
json default specialization
ordered_json specialization that maintains the insertion order of object keys

Functions

Name Description
Unnamed overloads
operator>> Right shift operators
swap exchanges the values
to_string user-defined to_string function for JSON values
operator<< Left shift operators

See Also

https://github.com/nlohmann

namespace for Niels Lohmann

Types

Name Description
adl_serializer default JSONSerializer template argument
basic_json<>
basic_json a class to store JSON values
byte_container_with_subtype an internal type for a backed binary type
byte_container_with_subtype<vector<unsigned char>>
json_pointer
json_pointer JSON Pointer defines a string syntax for identifying a specific value within a JSON document
ordered_map a minimal map-like container that preserves insertion order
json default specialization
ordered_json specialization that maintains the insertion order of object keys

Functions

Name Description
Unnamed overloads
operator>> Right shift operators
swap exchanges the values
to_string user-defined to_string function for JSON values
operator<< Left shift operators

See Also

https://github.com/nlohmann

default specialization

Synopsis

Declared in <nlohmann/json_fwd.hpp>
using json = basic_json;


specialization that maintains the insertion order of object keys

Synopsis

Declared in <nlohmann/json_fwd.hpp>
using ordered_json = basic_json<ordered_map>;


default JSONSerializer template argument

Synopsis

Declared in <nlohmann/adl_serializer.hpp>
template<
    typename T = void,
    typename SFINAE = void>
struct adl_serializer;


Static Member Functions

Name Description
from_json convert a JSON value to any value type
to_json convert any value type to a JSON value

Description

This serializer ignores the template arguments and uses ADL([argument-dependent lookup](https://en.cppreference.com/w/cpp/language/adl))for serialization.

convert a JSON value to any value type

Synopses

Declared in <nlohmann/adl_serializer.hpp>
convert a JSON value to any value type
template<
    typename BasicJsonType,
    typename TargetType = ValueType>
static
decltype(::nlohmann::from_json(std::forward<BasicJsonType>(j), detail::identity_tag<TargetType> {}))
from_json(BasicJsonType&& j) noexcept(noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), detail::identity_tag<TargetType>{})));


» more... convert a JSON value to any value type
template<
    typename BasicJsonType,
    typename TargetType = ValueType>
static
decltype(::nlohmann::from_json(std::forward<BasicJsonType>(j), val), void())
from_json(
    BasicJsonType&& j,
    TargetType& val) noexcept(noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), val)));


» more...
convert a JSON value to any value type

Synopsis

Declared in <nlohmann/adl_serializer.hpp>
template<
    typename BasicJsonType,
    typename TargetType = ValueType>
static
decltype(::nlohmann::from_json(std::forward<BasicJsonType>(j), detail::identity_tag<TargetType> {}))
from_json(BasicJsonType&& j) noexcept(noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), detail::identity_tag<TargetType>{})));


convert a JSON value to any value type

Synopsis

Declared in <nlohmann/adl_serializer.hpp>
template<
    typename BasicJsonType,
    typename TargetType = ValueType>
static
decltype(::nlohmann::from_json(std::forward<BasicJsonType>(j), val), void())
from_json(
    BasicJsonType&& j,
    TargetType& val) noexcept(noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), val)));


convert any value type to a JSON value

Synopsis

Declared in <nlohmann/adl_serializer.hpp>
template<
    typename BasicJsonType,
    typename TargetType = ValueType>
static
decltype(::nlohmann::to_json(j, std::forward<TargetType>(val)), void())
to_json(
    BasicJsonType& j,
    TargetType&& val) noexcept(noexcept(::nlohmann::to_json(j, std::forward<TargetType>(val))));


Synopsis

Declared in <nlohmann/json.hpp>
template<>
class basic_json<>
    : public nlohmann::detail::json_base_class<void>


Base Classes

Name Description
nlohmann::detail::json_base_class<void>

Types

Name Description
allocator_type the allocator type
array_t a type for an array
binary_t a type for a packed binary type
bjdata_version_t how to encode BJData
boolean_t a type for a boolean
cbor_tag_handler_t how to treat CBOR tags
const_iterator a const iterator for a basic_json container
const_pointer the type of an element const pointer
const_reference the type of an element const reference
const_reverse_iterator a const reverse iterator for a basic_json container
default_object_comparator_t
difference_type a type to represent differences between iterators
error_handler_t how to treat decoding errors
exception Classes to implement user-defined exceptions. @{
initializer_list_t helper type for initializer lists of basic_json values
input_format_t
invalid_iterator
iterator an iterator for a basic_json container
json_pointer JSON Pointer, see nlohmann::json_pointer
json_sax_t SAX interface type, see nlohmann::json_sax
json_serializer
number_float_t a type for a number (floating-point)
number_integer_t a type for a number (integer)
number_unsigned_t a type for a number (unsigned)
object_comparator_t object key comparator type
object_t a type for an object
other_error
out_of_range
parse_error
parse_event_t parser event types
parser_callback_t per-element parser callback type
pointer the type of an element pointer
reference the type of an element reference
reverse_iterator a reverse iterator for a basic_json container
size_type a type to represent container sizes
string_t a type for a string
type_error
value_t
value_type the type of elements in a basic_json container

Member Functions

Name Description
basic_json [constructor]Construct from nullptr_t
basic_json [constructor]Construct from value_t
basic_json [constructor]Construct from basic_json
basic_json [constructor]Construct from basic_json
basic_json [constructor]create a JSON value from an existing one
basic_json [constructor]////////////////////////////////////
basic_json [constructor]create a JSON value from compatible types
basic_json [constructor]Constructor
basic_json [constructor]construct a JSON container given an iterator range
basic_json [constructor]
~basic_json [destructor]Destructor
operator= Assignment operator
at
at
at
at
at
at
at
at
at access specified object element with bounds checking
at access specified object element with bounds checking
back
back
begin
begin
cbegin
cend
clear
contains
contains
contains
contains check the existence of an element in a JSON object
count
count returns the number of occurrences of a key in a JSON object
crbegin
crend
dump
emplace add an object to an object if key does not exist
emplace_back add an object to an array
empty
end
end
erase
erase
erase remove element given an iterator
erase remove element from a JSON object given a key
erase remove elements given an iterator range
find
find
find find an element in a JSON object
find find an element in a JSON object
flatten
front
front
get get a pointer value (explicit)
get get a (pointer) value (explicit)
get_binary
get_binary
get_ptr get a pointer value (implicit)
get_ptr get a pointer value (implicit)
get_ref get a reference value (implicit)
get_ref get a reference value (implicit)
get_to get a value (explicit)
get_to
get_to
insert
insert
insert
insert
insert
insert
insert_iterator Helper for insertion of an iterator
is_array
is_binary
is_boolean
is_discarded
is_null
is_number
is_number_float
is_number_integer
is_number_unsigned
is_object
is_primitive
is_string
is_structured
items
items
max_size
merge_patch
operator+= Addition assignment operator
operator+= Addition assignment operator
operator+= Addition assignment operator
operator+= Addition assignment operator
operator[] Subscript operator
operator[] Subscript operator
operator[] Subscript operator
operator[] Subscript operator
operator[] Subscript operator
operator[] Subscript operator
operator[] Subscript operator
operator[] Subscript operator
operator[] access specified object element
operator[] access specified object element
operator[] Subscript operator
operator[] Subscript operator
patch
patch_inplace
push_back
push_back
push_back
push_back
rbegin
rbegin
rend
rend
size
swap
swap
swap
swap
swap
swap
type
type_name
unflatten
update
update
value access specified object element via JSON Pointer with default value
value access specified object element with default value
value access specified object element via JSON Pointer with default value
value access specified object element with default value
value
value access specified object element with default value
value
value access specified object element via JSON Pointer with default value
operator ValueType get a value (implicit)
operator value_t Conversion to value_t
operator== comparison: equal
operator== Equality operator
operator!= Inequality operator
operator<=> comparison: 3-way
operator<=> Three-way comparison operator

Static Member Functions

Name Description
accept
accept check if the input is valid JSON
accept check if the input is valid JSON
array
binary
binary
binary
binary
diff
from_bjdata create a JSON value from an input in BJData format
from_bjdata create a JSON value from an input in BJData format
from_bson
from_bson create a JSON value from an input in BSON format
from_bson create a JSON value from an input in BSON format
from_bson
from_cbor
from_cbor create a JSON value from an input in CBOR format
from_cbor create a JSON value from an input in CBOR format
from_cbor
from_msgpack
from_msgpack create a JSON value from an input in MessagePack format
from_msgpack create a JSON value from an input in MessagePack format
from_msgpack
from_ubjson
from_ubjson create a JSON value from an input in UBJSON format
from_ubjson create a JSON value from an input in UBJSON format
from_ubjson
get_allocator
iterator_wrapper
iterator_wrapper
meta
object
parse
parse deserialize from a compatible input
parse deserialize from a pair of character iterators
sax_parse generate SAX events
sax_parse generate SAX events
sax_parse generate SAX events
to_bjdata
to_bjdata
to_bjdata
to_bson
to_bson
to_bson
to_cbor
to_cbor
to_cbor
to_msgpack
to_msgpack
to_msgpack
to_ubjson
to_ubjson
to_ubjson

Friends

|===
Name Description
operator>> deserialize from stream
operator<< deserialize from stream
operator>> serialize to stream
operator<< serialize to stream
swap exchanges the values
exception general exception of the basic_json class
serializer
json_pointer JSON Pointer defines a string syntax for identifying a specific value within a JSON document
the allocator type

Synopsis

Declared in <nlohmann/json.hpp>
using allocator_type = allocator<basic_json>;


a type for an array

Synopsis

Declared in <nlohmann/json.hpp>
using array_t = vector<basic_json, allocator<basic_json>>;


a type for a packed binary type

Synopsis

Declared in <nlohmann/json.hpp>
using binary_t = nlohmann::byte_container_with_subtype<vector<unsigned char>>;


how to encode BJData

Synopsis

Declared in <nlohmann/json.hpp>
using bjdata_version_t = detail::bjdata_version_t;


a type for a boolean

Synopsis

Declared in <nlohmann/json.hpp>
using boolean_t = bool;


how to treat CBOR tags

Synopsis

Declared in <nlohmann/json.hpp>
using cbor_tag_handler_t = detail::cbor_tag_handler_t;


a const iterator for a basic_json container

Synopsis

Declared in <nlohmann/json.hpp>
using const_iterator = iter_impl<basic_json const>;


the type of an element const pointer

Synopsis

Declared in <nlohmann/json.hpp>
using const_pointer = std::allocator_traits<allocator_type>::const_pointer;


the type of an element const reference

Synopsis

Declared in <nlohmann/json.hpp>
using const_reference = value_type const&;


a const reverse iterator for a basic_json container

Synopsis

Declared in <nlohmann/json.hpp>
using const_reverse_iterator = json_reverse_iterator<basic_json::const_iterator>;


Synopsis

Declared in <nlohmann/json.hpp>
using default_object_comparator_t = std::less;


a type to represent differences between iterators

Synopsis

Declared in <nlohmann/json.hpp>
using difference_type = std::ptrdiff_t;


how to treat decoding errors

Synopsis

Declared in <nlohmann/json.hpp>
using error_handler_t = detail::error_handler_t;


Classes to implement user-defined exceptions. @{

Synopsis

Declared in <nlohmann/json.hpp>
using exception = detail::exception;


helper type for initializer lists of basic_json values

Synopsis

Declared in <nlohmann/json.hpp>
using initializer_list_t = std::initializer_list<detail::json_ref<basic_json>>;


Synopsis

Declared in <nlohmann/json.hpp>
using input_format_t = detail::input_format_t;


Synopsis

Declared in <nlohmann/json.hpp>
using invalid_iterator = detail::invalid_iterator;


an iterator for a basic_json container

Synopsis

Declared in <nlohmann/json.hpp>
using iterator = iter_impl<basic_json>;


JSON Pointer, see nlohmann::json_pointer

Synopsis

Declared in <nlohmann/json.hpp>
using json_pointer = nlohmann::json_pointer<basic_string<char>>;


SAX interface type, see nlohmann::json_sax

Synopsis

Declared in <nlohmann/json.hpp>
using json_sax_t = json_sax<basic_json>;


Synopsis

Declared in <nlohmann/json.hpp>
template<
    typename T,
    typename SFINAE>
using json_serializer = adl_serializer<T, SFINAE>;


a type for a number (floating-point)

Synopsis

Declared in <nlohmann/json.hpp>
using number_float_t = double;


a type for a number (integer)

Synopsis

Declared in <nlohmann/json.hpp>
using number_integer_t = long long;


a type for a number (unsigned)

Synopsis

Declared in <nlohmann/json.hpp>
using number_unsigned_t = unsigned long long;


object key comparator type

Synopsis

Declared in <nlohmann/json.hpp>
using object_comparator_t = detail::actual_object_comparator_t<basic_json>;


a type for an object

Synopsis

Declared in <nlohmann/json.hpp>
using object_t = map<basic_string<char>, basic_json, default_object_comparator_t, allocator<std::pair<basic_string<char> const, basic_json>>>;


Synopsis

Declared in <nlohmann/json.hpp>
using other_error = detail::other_error;


Synopsis

Declared in <nlohmann/json.hpp>
using out_of_range = detail::out_of_range;


Synopsis

Declared in <nlohmann/json.hpp>
using parse_error = detail::parse_error;


parser event types

Synopsis

Declared in <nlohmann/json.hpp>
using parse_event_t = detail::parse_event_t;


per-element parser callback type

Synopsis

Declared in <nlohmann/json.hpp>
using parser_callback_t = detail::parser_callback_t<basic_json>;


the type of an element pointer

Synopsis

Declared in <nlohmann/json.hpp>
using pointer = std::allocator_traits<allocator_type>::pointer;


the type of an element reference

Synopsis

Declared in <nlohmann/json.hpp>
using reference = value_type&;


a reverse iterator for a basic_json container

Synopsis

Declared in <nlohmann/json.hpp>
using reverse_iterator = json_reverse_iterator<basic_json::iterator>;


a type to represent container sizes

Synopsis

Declared in <nlohmann/json.hpp>
using size_type = std::size_t;


a type for a string

Synopsis

Declared in <nlohmann/json.hpp>
using string_t = basic_string<char>;


Synopsis

Declared in <nlohmann/json.hpp>
using type_error = detail::type_error;


Synopsis

Declared in <nlohmann/json.hpp>
using value_t = detail::value_t;


the type of elements in a basic_json container

Synopsis

Declared in <nlohmann/json.hpp>
using value_type = basic_json;


Construct from nullptr_t

Synopsis

Declared in <nlohmann/json.hpp>
basic_json(std::nullptr_t value = nullptr) noexcept;


Parameters

Name Description
value The object to construct from
Construct from value_t

Synopsis

Declared in <nlohmann/json.hpp>
basic_json(value_t const v);


Parameters

Name Description
v The object to construct from
Construct from basic_json

Synopsis

Declared in <nlohmann/json.hpp>
basic_json(basic_json const& other);


Parameters

Name Description
other The object to copy construct from
Construct from basic_json

Synopsis

Declared in <nlohmann/json.hpp>
basic_json(basic_json&& other) noexcept;


Parameters

Name Description
other The object to move construct from
create a JSON value from an existing one

Synopsis

Declared in <nlohmann/json.hpp>
template<typename BasicJsonType>
requires detail::is_basic_json<BasicJsonType>::value&& !std::is_same<basic_json, BasicJsonType>::value
basic_json(BasicJsonType const& val);


Parameters

Name Description
val The object to copy construct from
////////////////////////////////////

Synopsis

Declared in <nlohmann/json.hpp>
template<typename JsonRef>
requires detail::conjunction<detail::is_json_ref<JsonRef>,
                                 std::is_same<typename JsonRef::value_type, basic_json>>::value
basic_json(JsonRef const& ref);


Parameters

Name Description
ref The object to copy construct from
create a JSON value from compatible types

Synopsis

Declared in <nlohmann/json.hpp>
template<
    typename CompatibleType,
    typename U = detail::uncvref_t<CompatibleType>>
requires !detail::is_basic_json<U>::value && detail::is_compatible_type<basic_json_t, U>::value
basic_json(CompatibleType&& val) noexcept(noexcept(JSONSerializer<U, void>::to_json(std::declval<basic_json_t &>(), std::forward<CompatibleType>(val))));


Parameters

Name Description
val The object to move construct from
Constructor

Synopsis

Declared in <nlohmann/json.hpp>
basic_json(
    size_type cnt,
    basic_json const& val);


Parameters

Name Description
cnt The object to construct from
val a class to store JSON values
construct a JSON container given an iterator range

Synopsis

Declared in <nlohmann/json.hpp>
template<class InputIT>
requires std::is_same<InputIT, typename basic_json_t::iterator>::value ||
                   std::is_same<InputIT, typename basic_json_t::const_iterator>::value
basic_json(
    InputIT first,
    InputIT last);


Parameters

Name Description
first The object to construct from

Synopsis

Declared in <nlohmann/json.hpp>
basic_json(
    initializer_list_t init,
    bool type_deduction = true,
    value_t manual_type = value_t::array);


Destructor

Synopsis

Declared in <nlohmann/json.hpp>
~basic_json() noexcept;


Assignment operator

Synopsis

Declared in <nlohmann/json.hpp>
basic_json&
operator=(basic_json other) noexcept(std::is_nothrow_move_constructible<value_t>::value && std::is_nothrow_move_assignable<value_t>::value && std::is_nothrow_move_constructible<json_value>::value && std::is_nothrow_move_assignable<json_value>::value && std::is_nothrow_move_assignable<json_base_class_t>::value);


Return Value

a class to store JSON values

Parameters

Name Description
other The object to assign from

Synopsis

Declared in <nlohmann/json.hpp>
reference
at(size_type idx);


Synopsis

Declared in <nlohmann/json.hpp>
const_reference
at(size_type idx) const;


Synopsis

Declared in <nlohmann/json.hpp>
reference
at(json_pointer const& ptr);


Synopsis

Declared in <nlohmann/json.hpp>
const_reference
at(json_pointer const& ptr) const;


Synopsis

Declared in <nlohmann/json.hpp>
reference
at(object_t::key_type const& key);


Synopsis

Declared in <nlohmann/json.hpp>
const_reference
at(object_t::key_type const& key) const;


Synopsis

Declared in <nlohmann/json.hpp>
template<typename BasicJsonType>
requires detail::is_basic_json<BasicJsonType>::value
[[__deprecated__]]
reference
at(nlohmann::json_pointer<BasicJsonType> const& ptr);


Synopsis

Declared in <nlohmann/json.hpp>
template<typename BasicJsonType>
requires detail::is_basic_json<BasicJsonType>::value
[[__deprecated__]]
const_reference
at(nlohmann::json_pointer<BasicJsonType> const& ptr) const;


access specified object element with bounds checking

Synopsis

Declared in <nlohmann/json.hpp>
template<class KeyType>
requires detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value
reference
at(KeyType&& key);


Return Value

the type of an element reference
access specified object element with bounds checking

Synopsis

Declared in <nlohmann/json.hpp>
template<class KeyType>
requires detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value
const_reference
at(KeyType&& key) const;


Return Value

the type of an element const reference

Synopsis

Declared in <nlohmann/json.hpp>
reference
back();


Synopsis

Declared in <nlohmann/json.hpp>
const_reference
back() const;


Synopsis

Declared in <nlohmann/json.hpp>
iterator
begin() noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
const_iterator
begin() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
const_iterator
cbegin() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
const_iterator
cend() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
void
clear() noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
bool
contains(json_pointer const& ptr) const;


Synopsis

Declared in <nlohmann/json.hpp>
bool
contains(object_t::key_type const& key) const;


Synopsis

Declared in <nlohmann/json.hpp>
template<typename BasicJsonType>
requires detail::is_basic_json<BasicJsonType>::value
[[__deprecated__]]
bool
contains(nlohmann::json_pointer<BasicJsonType> const& ptr) const;


check the existence of an element in a JSON object

Synopsis

Declared in <nlohmann/json.hpp>
template<class KeyType>
requires detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value
bool
contains(KeyType&& key) const;


Synopsis

Declared in <nlohmann/json.hpp>
size_type
count(object_t::key_type const& key) const;


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

Synopsis

Declared in <nlohmann/json.hpp>
template<class KeyType>
requires detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value
size_type
count(KeyType&& key) const;


Return Value

a type to represent container sizes

Synopsis

Declared in <nlohmann/json.hpp>
const_reverse_iterator
crbegin() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
const_reverse_iterator
crend() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
string_t
dump(
    int const indent = -1,
    char const indent_char = ' ',
    bool const ensure_ascii = false,
    error_handler_t const error_handler = error_handler_t::strict) const;


add an object to an object if key does not exist

Synopsis

Declared in <nlohmann/json.hpp>
template<class... Args>
std::pair<iterator, bool>
emplace(Args...&&... args);


add an object to an array

Synopsis

Declared in <nlohmann/json.hpp>
template<class... Args>
reference
emplace_back(Args...&&... args);


Return Value

the type of an element reference

Synopsis

Declared in <nlohmann/json.hpp>
bool
empty() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
iterator
end() noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
const_iterator
end() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
void
erase(size_type const idx);


Synopsis

Declared in <nlohmann/json.hpp>
size_type
erase(object_t::key_type const& key);


remove element given an iterator

Synopsis

Declared in <nlohmann/json.hpp>
template<class IteratorType>
requires std::is_same<IteratorType, typename basic_json_t::iterator>::value ||
                   std::is_same<IteratorType, typename basic_json_t::const_iterator>::value
IteratorType
erase(IteratorType pos);


remove element from a JSON object given a key

Synopsis

Declared in <nlohmann/json.hpp>
template<class KeyType>
requires detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value
size_type
erase(KeyType&& key);


Return Value

a type to represent container sizes
remove elements given an iterator range

Synopsis

Declared in <nlohmann/json.hpp>
template<class IteratorType>
requires std::is_same<IteratorType, typename basic_json_t::iterator>::value ||
                   std::is_same<IteratorType, typename basic_json_t::const_iterator>::value
IteratorType
erase(
    IteratorType first,
    IteratorType last);


Synopsis

Declared in <nlohmann/json.hpp>
iterator
find(object_t::key_type const& key);


Synopsis

Declared in <nlohmann/json.hpp>
const_iterator
find(object_t::key_type const& key) const;


find an element in a JSON object

Synopsis

Declared in <nlohmann/json.hpp>
template<class KeyType>
requires detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value
const_iterator
find(KeyType&& key) const;


Return Value

a const iterator for a basic_json container
find an element in a JSON object

Synopsis

Declared in <nlohmann/json.hpp>
template<class KeyType>
requires detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value
iterator
find(KeyType&& key);


Return Value

an iterator for a basic_json container

Synopsis

Declared in <nlohmann/json.hpp>
basic_json
flatten() const;


Synopsis

Declared in <nlohmann/json.hpp>
reference
front();


Synopsis

Declared in <nlohmann/json.hpp>
const_reference
front() const;


get a pointer value (explicit)

Synopsis

Declared in <nlohmann/json.hpp>
template<typename PointerType>
requires std::is_pointer<PointerType>::value
decltype(std::declval<basic_json_t&>().template get_ptr<PointerType>())
get() noexcept;


Description

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

WARNING

The pointer becomes invalid if the underlying JSON object changes.

Constant.

{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}

Return Value

pointer to the internally stored JSON value if the requested pointer type PointerType fits to the JSON value; nullptr otherwise

Template Parameters

Name Description
PointerType pointer type; must be a pointer to array_t, object_t, string_t, boolean_t, number_integer_t, number_unsigned_t, or number_float_t.
get a (pointer) value (explicit)

Synopsis

Declared in <nlohmann/json.hpp>
template<
    typename ValueTypeCV,
    typename ValueType = detail::uncvref_t<ValueTypeCV>>
constexpr
decltype(std::declval<const basic_json_t&>().template get_impl<ValueType>(detail::priority_tag<4> {}))
get() const noexcept(noexcept(std::declval<const basic_json_t &>().template get_impl<ValueType>(detail::priority_tag<4>{})));


Description

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

- If the requested type is a pointer to the internally stored JSON value that pointer is returned. No copies are made.

- If the requested type is the current basic_json, or a different basic_json convertible from the current basic_json.

- Otherwise the value is converted by calling the json_serializer<ValueType> from_json() method.

Exceptions

Name Thrown on
what json_serializer<ValueType> from_json() method throws if conversion is required

Return Value

copy of the JSON value, converted to

Template Parameters

Name Description
ValueTypeCV the provided value type
ValueType the returned value type
ValueType if necessary

Synopsis

Declared in <nlohmann/json.hpp>
binary_t&
get_binary();


Synopsis

Declared in <nlohmann/json.hpp>
binary_t const&
get_binary() const;


get a pointer value (implicit)

Synopsis

Declared in <nlohmann/json.hpp>
template<typename PointerType>
requires std::is_pointer<PointerType>::value&&
                   std::is_const<typename std::remove_pointer<PointerType>::type>::value
constexpr
decltype(std::declval<const basic_json_t&>().get_impl_ptr(std::declval<PointerType>()))
get_ptr() const noexcept;


get a pointer value (implicit)

Synopsis

Declared in <nlohmann/json.hpp>
template<typename PointerType>
requires std::is_pointer<PointerType>::value
decltype(std::declval<basic_json_t&>().get_impl_ptr(std::declval<PointerType>()))
get_ptr() noexcept;


get a reference value (implicit)

Synopsis

Declared in <nlohmann/json.hpp>
template<typename ReferenceType>
requires std::is_reference<ReferenceType>::value
ReferenceType
get_ref();


get a reference value (implicit)

Synopsis

Declared in <nlohmann/json.hpp>
template<typename ReferenceType>
requires std::is_reference<ReferenceType>::value&&
                   std::is_const<typename std::remove_reference<ReferenceType>::type>::value
ReferenceType
get_ref() const;


get a value (explicit)

Synopsis

Declared in <nlohmann/json.hpp>
template<typename ValueType>
requires !detail::is_basic_json<ValueType>::value&&
                   detail::has_from_json<basic_json_t, ValueType>::value
ValueType&
get_to(ValueType& v) const noexcept(noexcept(JSONSerializer<ValueType, void>::from_json(std::declval<const basic_json_t &>(), v)));


Synopsis

Declared in <nlohmann/json.hpp>
template<typename ValueType>
requires detail::is_basic_json<ValueType>::value
ValueType&
get_to(ValueType& v) const;


Synopsis

Declared in <nlohmann/json.hpp>
template<
    typename T,
    std::size_t N,
    typename Array = T(&)[]>
requires detail::has_from_json<basic_json_t, Array>::value
Array
get_to(T(& v)[]) const noexcept(noexcept(JSONSerializer<Array, void>::from_json(std::declval<const basic_json_t &>(), v)));


Synopsis

Declared in <nlohmann/json.hpp>
void
insert(
    const_iterator first,
    const_iterator last);


Synopsis

Declared in <nlohmann/json.hpp>
iterator
insert(
    const_iterator pos,
    initializer_list_t ilist);


Synopsis

Declared in <nlohmann/json.hpp>
iterator
insert(
    const_iterator pos,
    basic_json const& val);


Synopsis

Declared in <nlohmann/json.hpp>
iterator
insert(
    const_iterator pos,
    basic_json&& val);


Synopsis

Declared in <nlohmann/json.hpp>
iterator
insert(
    const_iterator pos,
    const_iterator first,
    const_iterator last);


Synopsis

Declared in <nlohmann/json.hpp>
iterator
insert(
    const_iterator pos,
    size_type cnt,
    basic_json const& val);


Helper for insertion of an iterator

Synopsis

Declared in <nlohmann/json.hpp>
template<typename... Args>
iterator
insert_iterator(
    const_iterator pos,
    Args...&&... args);


Description

NOTE

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

Return Value

an iterator for a basic_json container

Parameters

Name Description
pos a const iterator for a basic_json container

Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_array() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_binary() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_boolean() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_discarded() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_null() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_number() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_number_float() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_number_integer() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_number_unsigned() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_object() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_primitive() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_string() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_structured() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
iteration_proxy<iterator>
items() noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
iteration_proxy<const_iterator>
items() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
size_type
max_size() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
void
merge_patch(basic_json const& apply_patch);


Addition assignment operator

Synopsis

Declared in <nlohmann/json.hpp>
reference
operator+=(initializer_list_t init);


Return Value

the type of an element reference

Parameters

Name Description
init The right operand
Addition assignment operator

Synopsis

Declared in <nlohmann/json.hpp>
reference
operator+=(object_t::value_type const& val);


Return Value

the type of an element reference

Parameters

Name Description
val The right operand
Addition assignment operator

Synopsis

Declared in <nlohmann/json.hpp>
reference
operator+=(basic_json const& val);


Return Value

the type of an element reference

Parameters

Name Description
val The right operand
Addition assignment operator

Synopsis

Declared in <nlohmann/json.hpp>
reference
operator+=(basic_json&& val);


Return Value

the type of an element reference

Parameters

Name Description
val The right operand
Subscript operator

Synopsis

Declared in <nlohmann/json.hpp>
reference
operator[](object_t::key_type key);


Return Value

the type of an element reference

Parameters

Name Description
key The right operand
Subscript operator

Synopsis

Declared in <nlohmann/json.hpp>
reference
operator[](size_type idx);


Return Value

the type of an element reference

Parameters

Name Description
idx The right operand
Subscript operator

Synopsis

Declared in <nlohmann/json.hpp>
const_reference
operator[](size_type idx) const;


Return Value

the type of an element const reference

Parameters

Name Description
idx The right operand
Subscript operator

Synopsis

Declared in <nlohmann/json.hpp>
reference
operator[](json_pointer const& ptr);


Return Value

the type of an element reference

Parameters

Name Description
ptr The right operand
Subscript operator

Synopsis

Declared in <nlohmann/json.hpp>
const_reference
operator[](json_pointer const& ptr) const;


Return Value

the type of an element const reference

Parameters

Name Description
ptr The right operand
Subscript operator

Synopsis

Declared in <nlohmann/json.hpp>
const_reference
operator[](object_t::key_type const& key) const;


Return Value

the type of an element const reference

Parameters

Name Description
key The right operand
Subscript operator

Synopsis

Declared in <nlohmann/json.hpp>
template<typename BasicJsonType>
requires detail::is_basic_json<BasicJsonType>::value
[[__deprecated__]]
const_reference
operator[](nlohmann::json_pointer<BasicJsonType> const& ptr) const;


Return Value

the type of an element const reference

Parameters

Name Description
ptr The right operand
Subscript operator

Synopsis

Declared in <nlohmann/json.hpp>
template<typename BasicJsonType>
requires detail::is_basic_json<BasicJsonType>::value
[[__deprecated__]]
reference
operator[](nlohmann::json_pointer<BasicJsonType> const& ptr);


Return Value

the type of an element reference

Parameters

Name Description
ptr The right operand
access specified object element

Synopsis

Declared in <nlohmann/json.hpp>
template<class KeyType>
requires detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value
reference
operator[](KeyType&& key);


Return Value

the type of an element reference

Parameters

Name Description
key The right operand
access specified object element

Synopsis

Declared in <nlohmann/json.hpp>
template<class KeyType>
requires detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value
const_reference
operator[](KeyType&& key) const;


Return Value

the type of an element const reference

Parameters

Name Description
key The right operand
Subscript operator

Synopsis

Declared in <nlohmann/json.hpp>
template<typename T>
reference
operator[](T* key);


Return Value

the type of an element reference

Parameters

Name Description
key The right operand
Subscript operator

Synopsis

Declared in <nlohmann/json.hpp>
template<typename T>
const_reference
operator[](T* key) const;


Return Value

the type of an element const reference

Parameters

Name Description
key The right operand

Synopsis

Declared in <nlohmann/json.hpp>
basic_json
patch(basic_json const& json_patch) const;


Synopsis

Declared in <nlohmann/json.hpp>
void
patch_inplace(basic_json const& json_patch);


Synopsis

Declared in <nlohmann/json.hpp>
void
push_back(initializer_list_t init);


Synopsis

Declared in <nlohmann/json.hpp>
void
push_back(object_t::value_type const& val);


Synopsis

Declared in <nlohmann/json.hpp>
void
push_back(basic_json const& val);


Synopsis

Declared in <nlohmann/json.hpp>
void
push_back(basic_json&& val);


Synopsis

Declared in <nlohmann/json.hpp>
reverse_iterator
rbegin() noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
const_reverse_iterator
rbegin() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
reverse_iterator
rend() noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
const_reverse_iterator
rend() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
size_type
size() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
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);


Synopsis

Declared in <nlohmann/json.hpp>
void
swap(array_t& other);


Synopsis

Declared in <nlohmann/json.hpp>
void
swap(binary_t& other);


Synopsis

Declared in <nlohmann/json.hpp>
void
swap(binary_t::container_type& other);


Synopsis

Declared in <nlohmann/json.hpp>
void
swap(object_t& other);


Synopsis

Declared in <nlohmann/json.hpp>
void
swap(string_t& other);


Synopsis

Declared in <nlohmann/json.hpp>
constexpr
value_t
type() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
[[__returns_nonnull__]]
char const*
type_name() const noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
basic_json
unflatten() const;


Synopsis

Declared in <nlohmann/json.hpp>
void
update(
    const_reference j,
    bool merge_objects = false);


Synopsis

Declared in <nlohmann/json.hpp>
void
update(
    const_iterator first,
    const_iterator last,
    bool merge_objects = false);


access specified object element via JSON Pointer with default value

Synopsis

Declared in <nlohmann/json.hpp>
template<class ValueType>
requires detail::is_getable<basic_json_t, ValueType>::value
                   && !std::is_same<value_t, detail::uncvref_t<ValueType>>::value
ValueType
value(
    json_pointer const& ptr,
    ValueType const& default_value) const;


Parameters

Name Description
ptr JSON Pointer, see nlohmann::json_pointer
access specified object element with default value

Synopsis

Declared in <nlohmann/json.hpp>
template<class ValueType>
requires !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
ValueType
value(
    object_t::key_type const& key,
    ValueType const& default_value) const;


access specified object element via JSON Pointer with default value

Synopsis

Declared in <nlohmann/json.hpp>
template<
    class ValueType,
    class ReturnType = value_return_type<ValueType>::type>
requires detail::is_getable<basic_json_t, ReturnType>::value
                   && !std::is_same<value_t, detail::uncvref_t<ValueType>>::value
ReturnType
value(
    json_pointer const& ptr,
    ValueType&& default_value) const;


Parameters

Name Description
ptr JSON Pointer, see nlohmann::json_pointer
access specified object element with default value

Synopsis

Declared in <nlohmann/json.hpp>
template<
    class ValueType,
    class ReturnType = value_return_type<ValueType>::type>
requires !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
ReturnType
value(
    object_t::key_type const& key,
    ValueType&& default_value) const;


Synopsis

Declared in <nlohmann/json.hpp>
template<
    class ValueType,
    class BasicJsonType>
requires detail::is_basic_json<BasicJsonType>::value
                   && detail::is_getable<basic_json_t, ValueType>::value
                   && !std::is_same<value_t, detail::uncvref_t<ValueType>>::value
[[__deprecated__]]
ValueType
value(
    nlohmann::json_pointer<BasicJsonType> const& ptr,
    ValueType const& default_value) const;


access specified object element with default value

Synopsis

Declared in <nlohmann/json.hpp>
template<
    class ValueType,
    class KeyType>
requires 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
ValueType
value(
    KeyType&& key,
    ValueType const& default_value) const;


Synopsis

Declared in <nlohmann/json.hpp>
template<
    class ValueType,
    class BasicJsonType,
    class ReturnType = value_return_type<ValueType>::type>
requires detail::is_basic_json<BasicJsonType>::value
                   && detail::is_getable<basic_json_t, ReturnType>::value
                   && !std::is_same<value_t, detail::uncvref_t<ValueType>>::value
[[__deprecated__]]
ReturnType
value(
    nlohmann::json_pointer<BasicJsonType> const& ptr,
    ValueType&& default_value) const;


access specified object element via JSON Pointer with default value

Synopsis

Declared in <nlohmann/json.hpp>
template<
    class ValueType,
    class KeyType,
    class ReturnType = value_return_type<ValueType>::type>
requires 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
ReturnType
value(
    KeyType&& key,
    ValueType&& default_value) const;


get a value (implicit)

Synopsis

Declared in <nlohmann/json.hpp>
template<typename ValueType>
requires 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>>>,
#if defined(JSON_HAS_CPP_17) && (defined(__GNUC__) || (defined(_MSC_VER) && _MSC_VER >= 1910 && _MSC_VER <= 1914))
                                                detail::negation<std::is_same<ValueType, std::string_view>>,
#endif
#if defined(JSON_HAS_CPP_17) && JSON_HAS_STATIC_RTTI
                                                detail::negation<std::is_same<ValueType, std::any>>,
#endif
                                                detail::is_detected_lazy<detail::get_template_function, const basic_json_t&, ValueType>
                                                >::value
operator ValueType() const;


Description

Implicit type conversion between the JSON value and a compatible value. The call is realized by calling get() const.

Linear in the size of the JSON value.

{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}

Exceptions

Name Thrown on
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

Return Value

copy of the JSON value, converted to type ValueType

Template Parameters

Name Description
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.
Conversion to value_t

Synopsis

Declared in <nlohmann/json.hpp>
constexpr
operator value_t() const noexcept;


Return Value

The object converted to value_t
comparison: equal

Synopsis

Declared in <nlohmann/json.hpp>
template<typename ScalarType>
requires std::is_scalar_v<ScalarType>
bool
operator==(ScalarType rhs) const noexcept;


Return Value

true if the objects are equal, false otherwise

Parameters

Name Description
rhs The right operand
Equality operator

Synopsis

Declared in <nlohmann/json.hpp>
bool
operator==(const_reference rhs) const noexcept;


Return Value

true if the objects are equal, false otherwise

Parameters

Name Description
rhs The right operand
Inequality operator

Synopsis

Declared in <nlohmann/json.hpp>
bool
operator!=(const_reference rhs) const noexcept;


Return Value

true if the objects are not equal, false otherwise

Parameters

Name Description
rhs The right operand
comparison: 3-way

Synopsis

Declared in <nlohmann/json.hpp>
template<typename ScalarType>
requires std::is_scalar_v<ScalarType>
std::partial_ordering
operator<=>(ScalarType rhs) const noexcept;


Return Value

The relative order of the objects

Parameters

Name Description
rhs The right operand
Three-way comparison operator

Synopsis

Declared in <nlohmann/json.hpp>
std::partial_ordering
operator<=>(const_reference rhs) const noexcept;


Return Value

The relative order of the objects

Parameters

Name Description
rhs The right operand

Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__, __deprecated__]]
static
bool
accept(
    detail::span_input_adapter&& i,
    bool const ignore_comments = false,
    bool const ignore_trailing_commas = false);


check if the input is valid JSON

Synopsis

Declared in <nlohmann/json.hpp>
template<typename InputType>
static
bool
accept(
    InputType&& i,
    bool const ignore_comments = false,
    bool const ignore_trailing_commas = false);


check if the input is valid JSON

Synopsis

Declared in <nlohmann/json.hpp>
template<typename IteratorType>
static
bool
accept(
    IteratorType first,
    IteratorType last,
    bool const ignore_comments = false,
    bool const ignore_trailing_commas = false);


Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__]]
static
basic_json
array(initializer_list_t init = {});


Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__]]
static
basic_json
binary(binary_t::container_type const& init);


Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__]]
static
basic_json
binary(binary_t::container_type&& init);


Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__]]
static
basic_json
binary(
    binary_t::container_type const& init,
    binary_t::subtype_type subtype);


Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__]]
static
basic_json
binary(
    binary_t::container_type&& init,
    binary_t::subtype_type subtype);


Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__]]
static
basic_json
diff(
    basic_json const& source,
    basic_json const& target,
    string_t const& path = "");


create a JSON value from an input in BJData format

Synopsis

Declared in <nlohmann/json.hpp>
template<typename InputType>
[[__warn_unused_result__]]
static
basic_json
from_bjdata(
    InputType&& i,
    bool const strict = true,
    bool const allow_exceptions = true);


Return Value

a class to store JSON values
create a JSON value from an input in BJData format

Synopsis

Declared in <nlohmann/json.hpp>
template<typename IteratorType>
[[__warn_unused_result__]]
static
basic_json
from_bjdata(
    IteratorType first,
    IteratorType last,
    bool const strict = true,
    bool const allow_exceptions = true);


Return Value

a class to store JSON values

Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__, __deprecated__]]
static
basic_json
from_bson(
    detail::span_input_adapter&& i,
    bool const strict = true,
    bool const allow_exceptions = true);


create a JSON value from an input in BSON format

Synopsis

Declared in <nlohmann/json.hpp>
template<typename InputType>
[[__warn_unused_result__]]
static
basic_json
from_bson(
    InputType&& i,
    bool const strict = true,
    bool const allow_exceptions = true);


Return Value

a class to store JSON values
create a JSON value from an input in BSON format

Synopsis

Declared in <nlohmann/json.hpp>
template<typename IteratorType>
[[__warn_unused_result__]]
static
basic_json
from_bson(
    IteratorType first,
    IteratorType last,
    bool const strict = true,
    bool const allow_exceptions = true);


Return Value

a class to store JSON values

Synopsis

Declared in <nlohmann/json.hpp>
template<typename T>
[[__warn_unused_result__, __deprecated__]]
static
basic_json
from_bson(
    T const* ptr,
    std::size_t len,
    bool const strict = true,
    bool const allow_exceptions = true);


Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__, __deprecated__]]
static
basic_json
from_cbor(
    detail::span_input_adapter&& i,
    bool const strict = true,
    bool const allow_exceptions = true,
    cbor_tag_handler_t const tag_handler = cbor_tag_handler_t::error);


create a JSON value from an input in CBOR format

Synopsis

Declared in <nlohmann/json.hpp>
template<typename InputType>
[[__warn_unused_result__]]
static
basic_json
from_cbor(
    InputType&& i,
    bool const strict = true,
    bool const allow_exceptions = true,
    cbor_tag_handler_t const tag_handler = cbor_tag_handler_t::error);


Return Value

a class to store JSON values

Parameters

Name Description
tag_handler how to treat CBOR tags
create a JSON value from an input in CBOR format

Synopsis

Declared in <nlohmann/json.hpp>
template<typename IteratorType>
[[__warn_unused_result__]]
static
basic_json
from_cbor(
    IteratorType first,
    IteratorType last,
    bool const strict = true,
    bool const allow_exceptions = true,
    cbor_tag_handler_t const tag_handler = cbor_tag_handler_t::error);


Return Value

a class to store JSON values

Parameters

Name Description
tag_handler how to treat CBOR tags

Synopsis

Declared in <nlohmann/json.hpp>
template<typename T>
[[__warn_unused_result__, __deprecated__]]
static
basic_json
from_cbor(
    T const* ptr,
    std::size_t len,
    bool const strict = true,
    bool const allow_exceptions = true,
    cbor_tag_handler_t const tag_handler = cbor_tag_handler_t::error);


Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__, __deprecated__]]
static
basic_json
from_msgpack(
    detail::span_input_adapter&& i,
    bool const strict = true,
    bool const allow_exceptions = true);


create a JSON value from an input in MessagePack format

Synopsis

Declared in <nlohmann/json.hpp>
template<typename InputType>
[[__warn_unused_result__]]
static
basic_json
from_msgpack(
    InputType&& i,
    bool const strict = true,
    bool const allow_exceptions = true);


Return Value

a class to store JSON values
create a JSON value from an input in MessagePack format

Synopsis

Declared in <nlohmann/json.hpp>
template<typename IteratorType>
[[__warn_unused_result__]]
static
basic_json
from_msgpack(
    IteratorType first,
    IteratorType last,
    bool const strict = true,
    bool const allow_exceptions = true);


Return Value

a class to store JSON values

Synopsis

Declared in <nlohmann/json.hpp>
template<typename T>
[[__warn_unused_result__, __deprecated__]]
static
basic_json
from_msgpack(
    T const* ptr,
    std::size_t len,
    bool const strict = true,
    bool const allow_exceptions = true);


Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__, __deprecated__]]
static
basic_json
from_ubjson(
    detail::span_input_adapter&& i,
    bool const strict = true,
    bool const allow_exceptions = true);


create a JSON value from an input in UBJSON format

Synopsis

Declared in <nlohmann/json.hpp>
template<typename InputType>
[[__warn_unused_result__]]
static
basic_json
from_ubjson(
    InputType&& i,
    bool const strict = true,
    bool const allow_exceptions = true);


Return Value

a class to store JSON values
create a JSON value from an input in UBJSON format

Synopsis

Declared in <nlohmann/json.hpp>
template<typename IteratorType>
[[__warn_unused_result__]]
static
basic_json
from_ubjson(
    IteratorType first,
    IteratorType last,
    bool const strict = true,
    bool const allow_exceptions = true);


Return Value

a class to store JSON values

Synopsis

Declared in <nlohmann/json.hpp>
template<typename T>
[[__warn_unused_result__, __deprecated__]]
static
basic_json
from_ubjson(
    T const* ptr,
    std::size_t len,
    bool const strict = true,
    bool const allow_exceptions = true);


Synopsis

Declared in <nlohmann/json.hpp>
static
allocator_type
get_allocator();


Synopsis

Declared in <nlohmann/json.hpp>
[[__deprecated__]]
static
iteration_proxy<const_iterator>
iterator_wrapper(const_reference ref) noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
[[__deprecated__]]
static
iteration_proxy<iterator>
iterator_wrapper(reference ref) noexcept;


Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__]]
static
basic_json
meta();


Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__]]
static
basic_json
object(initializer_list_t init = {});


Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__, __deprecated__]]
static
basic_json
parse(
    detail::span_input_adapter&& i,
    parser_callback_t cb = nullptr,
    bool const allow_exceptions = true,
    bool const ignore_comments = false,
    bool const ignore_trailing_commas = false);


deserialize from a compatible input

Synopsis

Declared in <nlohmann/json.hpp>
template<typename InputType>
[[__warn_unused_result__]]
static
basic_json
parse(
    InputType&& i,
    parser_callback_t cb = nullptr,
    bool const allow_exceptions = true,
    bool const ignore_comments = false,
    bool const ignore_trailing_commas = false);


Return Value

a class to store JSON values

Parameters

Name Description
cb per-element parser callback type
deserialize from a pair of character iterators

Synopsis

Declared in <nlohmann/json.hpp>
template<typename IteratorType>
[[__warn_unused_result__]]
static
basic_json
parse(
    IteratorType first,
    IteratorType last,
    parser_callback_t cb = nullptr,
    bool const allow_exceptions = true,
    bool const ignore_comments = false,
    bool const ignore_trailing_commas = false);


Return Value

a class to store JSON values

Parameters

Name Description
cb per-element parser callback type
generate SAX events

Synopsis

Declared in <nlohmann/json.hpp>
template<typename SAX>
[[__deprecated__, __nonnull__]]
static
bool
sax_parse(
    detail::span_input_adapter&& i,
    SAX* sax,
    input_format_t format = input_format_t::json,
    bool const strict = true,
    bool const ignore_comments = false,
    bool const ignore_trailing_commas = false);


generate SAX events

Synopsis

Declared in <nlohmann/json.hpp>
template<
    typename InputType,
    typename SAX>
[[__nonnull__]]
static
bool
sax_parse(
    InputType&& i,
    SAX* sax,
    input_format_t format = input_format_t::json,
    bool const strict = true,
    bool const ignore_comments = false,
    bool const ignore_trailing_commas = false);


generate SAX events

Synopsis

Declared in <nlohmann/json.hpp>
template<
    class IteratorType,
    class SAX>
[[__nonnull__]]
static
bool
sax_parse(
    IteratorType first,
    IteratorType last,
    SAX* sax,
    input_format_t format = input_format_t::json,
    bool const strict = true,
    bool const ignore_comments = false,
    bool const ignore_trailing_commas = false);


Synopsis

Declared in <nlohmann/json.hpp>
static
std::vector<uint8_t>
to_bjdata(
    basic_json const& j,
    bool const use_size = false,
    bool const use_type = false,
    bjdata_version_t const version = bjdata_version_t::draft2);


Synopsis

Declared in <nlohmann/json.hpp>
static
void
to_bjdata(
    basic_json const& j,
    detail::output_adapter<uint8_t> o,
    bool const use_size = false,
    bool const use_type = false,
    bjdata_version_t const version = bjdata_version_t::draft2);


Synopsis

Declared in <nlohmann/json.hpp>
static
void
to_bjdata(
    basic_json const& j,
    detail::output_adapter<char> o,
    bool const use_size = false,
    bool const use_type = false,
    bjdata_version_t const version = bjdata_version_t::draft2);


Synopsis

Declared in <nlohmann/json.hpp>
static
std::vector<uint8_t>
to_bson(basic_json const& j);


Synopsis

Declared in <nlohmann/json.hpp>
static
void
to_bson(
    basic_json const& j,
    detail::output_adapter<uint8_t> o);


Synopsis

Declared in <nlohmann/json.hpp>
static
void
to_bson(
    basic_json const& j,
    detail::output_adapter<char> o);


Synopsis

Declared in <nlohmann/json.hpp>
static
std::vector<uint8_t>
to_cbor(basic_json const& j);


Synopsis

Declared in <nlohmann/json.hpp>
static
void
to_cbor(
    basic_json const& j,
    detail::output_adapter<uint8_t> o);


Synopsis

Declared in <nlohmann/json.hpp>
static
void
to_cbor(
    basic_json const& j,
    detail::output_adapter<char> o);


Synopsis

Declared in <nlohmann/json.hpp>
static
std::vector<uint8_t>
to_msgpack(basic_json const& j);


Synopsis

Declared in <nlohmann/json.hpp>
static
void
to_msgpack(
    basic_json const& j,
    detail::output_adapter<uint8_t> o);


Synopsis

Declared in <nlohmann/json.hpp>
static
void
to_msgpack(
    basic_json const& j,
    detail::output_adapter<char> o);


Synopsis

Declared in <nlohmann/json.hpp>
static
std::vector<uint8_t>
to_ubjson(
    basic_json const& j,
    bool const use_size = false,
    bool const use_type = false);


Synopsis

Declared in <nlohmann/json.hpp>
static
void
to_ubjson(
    basic_json const& j,
    detail::output_adapter<uint8_t> o,
    bool const use_size = false,
    bool const use_type = false);


Synopsis

Declared in <nlohmann/json.hpp>
static
void
to_ubjson(
    basic_json const& j,
    detail::output_adapter<char> o,
    bool const use_size = false,
    bool const use_type = false);


a class to store JSON values

Synopsis

Declared in <nlohmann/json.hpp>
template<
    template<
    typename U,
    typename V,
    typename... Args> typename ObjectType = map,
    template<
    typename U,
    typename... Args> typename ArrayType = vector,
    class StringType = std::string,
    class BooleanType = bool,
    class NumberIntegerType = int64_t,
    class NumberUnsignedType = uint64_t,
    class NumberFloatType = double,
    template<typename U> typename AllocatorType = allocator,
    template<
    typename T,
    typename SFINAE = void> typename JSONSerializer = adl_serializer,
    class BinaryType = std::vector<uint8_t>,
    class CustomBaseClass = void>
class basic_json
    : public nlohmann::detail::json_base_class<CustomBaseClass>


Base Classes

Name Description
nlohmann::detail::json_base_class<CustomBaseClass>

Types

Name Description
allocator_type the allocator type
array_t a type for an array
binary_t a type for a packed binary type
bjdata_version_t how to encode BJData
boolean_t a type for a boolean
cbor_tag_handler_t how to treat CBOR tags
const_iterator a const iterator for a basic_json container
const_pointer the type of an element const pointer
const_reference the type of an element const reference
const_reverse_iterator a const reverse iterator for a basic_json container
default_object_comparator_t
difference_type a type to represent differences between iterators
error_handler_t how to treat decoding errors
exception Classes to implement user-defined exceptions. @{
initializer_list_t helper type for initializer lists of basic_json values
input_format_t
invalid_iterator
iterator an iterator for a basic_json container
json_pointer JSON Pointer, see nlohmann::json_pointer
json_sax_t SAX interface type, see nlohmann::json_sax
json_serializer
number_float_t a type for a number (floating-point)
number_integer_t a type for a number (integer)
number_unsigned_t a type for a number (unsigned)
object_comparator_t object key comparator type
object_t a type for an object
other_error
out_of_range
parse_error
parse_event_t parser event types
parser_callback_t per-element parser callback type
pointer the type of an element pointer
reference the type of an element reference
reverse_iterator a reverse iterator for a basic_json container
size_type a type to represent container sizes
string_t a type for a string
type_error
value_t
value_type the type of elements in a basic_json container

Member Functions

Name Description
basic_json [constructor]copy constructor
basic_json [constructor]move constructor
basic_json [constructor]create a null object
basic_json [constructor]create an empty value with a given type
basic_json [constructor]create a JSON value from an existing one
basic_json [constructor]////////////////////////////////////
basic_json [constructor]create a JSON value from compatible types
basic_json [constructor]construct an array with count copies of given value
basic_json [constructor]construct a JSON container given an iterator range
basic_json [constructor]create a container (array or object) from an initializer list
~basic_json [destructor]destructor
operator= copy assignment
at access specified array element with bounds checking
at access specified array element with bounds checking
at access specified element via JSON Pointer
at access specified element via JSON Pointer
at access specified object element with bounds checking
at access specified object element with bounds checking
at
at
at access specified object element with bounds checking
at access specified object element with bounds checking
back access the last element
back access the last element
begin returns an iterator to the first element
begin returns an iterator to the first element
cbegin returns a const iterator to the first element
cend returns an iterator to one past the last element
clear clears the contents
contains check the existence of an element in a JSON object given a JSON pointer
contains check the existence of an element in a JSON object
contains
contains check the existence of an element in a JSON object
count returns the number of occurrences of a key in a JSON object
count returns the number of occurrences of a key in a JSON object
crbegin returns a const reverse iterator to the last element
crend returns a const reverse iterator to one before the first
dump serialization
emplace add an object to an object if key does not exist
emplace_back add an object to an array
empty checks whether the container is empty.
end returns an iterator to one past the last element
end returns an iterator to one past the last element
erase remove element from a JSON array given an index
erase remove element from a JSON object given a key
erase remove element given an iterator
erase remove element from a JSON object given a key
erase remove elements given an iterator range
find find an element in a JSON object
find find an element in a JSON object
find find an element in a JSON object
find find an element in a JSON object
flatten return flattened JSON value
front access the first element
front access the first element
get get a pointer value (explicit)
get get a (pointer) value (explicit)
get_binary get a binary value
get_binary get a binary value
get_ptr get a pointer value (implicit)
get_ptr get a pointer value (implicit)
get_ref get a reference value (implicit)
get_ref get a reference value (implicit)
get_to get a value (explicit)
get_to
get_to
insert inserts range of elements into object
insert inserts elements from initializer list into array
insert inserts element into array
insert inserts element into array
insert inserts range of elements into array
insert inserts copies of element into array
insert_iterator Helper for insertion of an iterator
is_array return whether value is an array
is_binary return whether value is a binary array
is_boolean return whether value is a boolean
is_discarded return whether value is discarded
is_null return whether value is null
is_number return whether value is a number
is_number_float return whether value is a floating-point number
is_number_integer return whether value is an integer number
is_number_unsigned return whether value is an unsigned integer number
is_object return whether value is an object
is_primitive return whether type is primitive
is_string return whether value is a string
is_structured return whether type is structured
items helper to access iterator member functions in range-based for
items helper to access iterator member functions in range-based for
max_size returns the maximum possible number of elements
merge_patch applies a JSON Merge Patch
operator+= add an object to an object
operator+= add an object to an array
operator+= add an object to an object
operator+= add an object to an array
operator[] access specified object element
operator[] access specified array element
operator[] access specified array element
operator[] access specified element via JSON Pointer
operator[] access specified element via JSON Pointer
operator[] access specified object element
operator[] Subscript operator
operator[] Subscript operator
operator[] access specified object element
operator[] access specified object element
operator[] Subscript operator
operator[] Subscript operator
patch applies a JSON patch to a copy of the current object
patch_inplace applies a JSON patch in-place without copying the object
push_back add an object to an object
push_back add an object to an array
push_back add an object to an object
push_back add an object to an array
rbegin returns an iterator to the reverse-beginning
rbegin returns an iterator to the reverse-beginning
rend returns an iterator to the reverse-end
rend returns an iterator to the reverse-end
size returns the number of elements
swap exchanges the values
swap exchanges the values
swap exchanges the values
swap exchanges the values
swap exchanges the values
swap exchanges the values
type return the type of the JSON value (explicit)
type_name return the type as string
unflatten unflatten a previously flattened JSON value
update updates a JSON object from another object, overwriting existing keys
update updates a JSON object from another object, overwriting existing keys
value access specified object element via JSON Pointer with default value
value access specified object element with default value
value access specified object element via JSON Pointer with default value
value access specified object element with default value
value
value access specified object element with default value
value
value access specified object element via JSON Pointer with default value
operator ValueType get a value (implicit)
operator value_t return the type of the JSON value (implicit)
operator== comparison: equal
operator== comparison: equal
operator!= comparison: not equal
operator<=> comparison: 3-way
operator<=> comparison: 3-way

Static Member Functions

Name Description
accept
accept check if the input is valid JSON
accept check if the input is valid JSON
array explicitly create an array from an initializer list
binary explicitly create a binary array (without subtype)
binary explicitly create a binary array
binary explicitly create a binary array (with subtype)
binary explicitly create a binary array (with subtype)
diff creates a diff as a JSON patch
from_bjdata create a JSON value from an input in BJData format
from_bjdata create a JSON value from an input in BJData format
from_bson
from_bson create a JSON value from an input in BSON format
from_bson create a JSON value from an input in BSON format
from_bson
from_cbor
from_cbor create a JSON value from an input in CBOR format
from_cbor create a JSON value from an input in CBOR format
from_cbor
from_msgpack
from_msgpack create a JSON value from an input in MessagePack format
from_msgpack create a JSON value from an input in MessagePack format
from_msgpack
from_ubjson
from_ubjson create a JSON value from an input in UBJSON format
from_ubjson create a JSON value from an input in UBJSON format
from_ubjson
get_allocator returns the allocator associated with the container
iterator_wrapper wrapper to access iterator member functions in range-based for
iterator_wrapper wrapper to access iterator member functions in range-based for
meta returns version information on the library
object explicitly create an object from an initializer list
parse
parse deserialize from a compatible input
parse deserialize from a pair of character iterators
sax_parse generate SAX events
sax_parse generate SAX events
sax_parse generate SAX events
to_bjdata create a BJData serialization of a given JSON value
to_bjdata create a BJData serialization of a given JSON value
to_bjdata create a BJData serialization of a given JSON value
to_bson create a BSON serialization of a given JSON value
to_bson create a BSON serialization of a given JSON value
to_bson create a BSON serialization of a given JSON value
to_cbor create a CBOR serialization of a given JSON value
to_cbor create a CBOR serialization of a given JSON value
to_cbor create a CBOR serialization of a given JSON value
to_msgpack create a MessagePack serialization of a given JSON value
to_msgpack create a MessagePack serialization of a given JSON value
to_msgpack create a MessagePack serialization of a given JSON value
to_ubjson create a UBJSON serialization of a given JSON value
to_ubjson create a UBJSON serialization of a given JSON value
to_ubjson create a UBJSON serialization of a given JSON value

Friends

|===
Name Description
operator>> deserialize from stream
operator<< deserialize from stream
operator>> serialize to stream
operator<< serialize to stream
swap exchanges the values
exception general exception of the basic_json class
serializer
json_pointer

Non-Member Functions

Name Description
operator<<deserialize from stream
operator>>serialize to stream
to_stringuser-defined to_string function for JSON values

Description

a class to store JSON values

@invariant The member variables @a m_value and @a m_type have the following relationship: - If `m_type == value_t::object`, then `m_value.object != nullptr`. - If `m_type == value_t::array`, then `m_value.array != nullptr`. - If `m_type == value_t::string`, then `m_value.string != nullptr`. The invariants are checked by member function assert_invariant(). @note ObjectType trick from https://stackoverflow.com/a/9860911
the allocator type

Synopsis

Declared in <nlohmann/json.hpp>
using allocator_type = AllocatorType<basic_json>;


a type for an array

Synopsis

Declared in <nlohmann/json.hpp>
using array_t = ArrayType<basic_json, AllocatorType<basic_json>>;


a type for a packed binary type

Synopsis

Declared in <nlohmann/json.hpp>
using binary_t = nlohmann::byte_container_with_subtype<BinaryType>;


how to encode BJData

Synopsis

Declared in <nlohmann/json.hpp>
using bjdata_version_t = detail::bjdata_version_t;


a type for a boolean

Synopsis

Declared in <nlohmann/json.hpp>
using boolean_t = BooleanType;


how to treat CBOR tags

Synopsis

Declared in <nlohmann/json.hpp>
using cbor_tag_handler_t = detail::cbor_tag_handler_t;


a const iterator for a basic_json container

Synopsis

Declared in <nlohmann/json.hpp>
using const_iterator = iter_impl<basic_json const>;


the type of an element const pointer

Synopsis

Declared in <nlohmann/json.hpp>
using const_pointer = std::allocator_traits<allocator_type>::const_pointer;


the type of an element const reference

Synopsis

Declared in <nlohmann/json.hpp>
using const_reference = value_type const&;


a const reverse iterator for a basic_json container

Synopsis

Declared in <nlohmann/json.hpp>
using const_reverse_iterator = json_reverse_iterator<basic_json::const_iterator>;


Synopsis

Declared in <nlohmann/json.hpp>
using default_object_comparator_t = std::less;


a type to represent differences between iterators

Synopsis

Declared in <nlohmann/json.hpp>
using difference_type = std::ptrdiff_t;


how to treat decoding errors

Synopsis

Declared in <nlohmann/json.hpp>
using error_handler_t = detail::error_handler_t;


Classes to implement user-defined exceptions. @{

Synopsis

Declared in <nlohmann/json.hpp>
using exception = detail::exception;


helper type for initializer lists of basic_json values

Synopsis

Declared in <nlohmann/json.hpp>
using initializer_list_t = std::initializer_list<detail::json_ref<basic_json>>;


Synopsis

Declared in <nlohmann/json.hpp>
using input_format_t = detail::input_format_t;


Synopsis

Declared in <nlohmann/json.hpp>
using invalid_iterator = detail::invalid_iterator;


an iterator for a basic_json container

Synopsis

Declared in <nlohmann/json.hpp>
using iterator = iter_impl<basic_json>;


JSON Pointer, see nlohmann::json_pointer

Synopsis

Declared in <nlohmann/json.hpp>
using json_pointer = nlohmann::json_pointer<StringType>;


SAX interface type, see nlohmann::json_sax

Synopsis

Declared in <nlohmann/json.hpp>
using json_sax_t = json_sax<basic_json>;


Synopsis

Declared in <nlohmann/json.hpp>
template<
    typename T,
    typename SFINAE>
using json_serializer = JSONSerializer<T, SFINAE>;


a type for a number (floating-point)

Synopsis

Declared in <nlohmann/json.hpp>
using number_float_t = NumberFloatType;


a type for a number (integer)

Synopsis

Declared in <nlohmann/json.hpp>
using number_integer_t = NumberIntegerType;


a type for a number (unsigned)

Synopsis

Declared in <nlohmann/json.hpp>
using number_unsigned_t = NumberUnsignedType;


object key comparator type

Synopsis

Declared in <nlohmann/json.hpp>
using object_comparator_t = detail::actual_object_comparator_t<basic_json>;


a type for an object

Synopsis

Declared in <nlohmann/json.hpp>
using object_t = ObjectType<StringType, basic_json, default_object_comparator_t, AllocatorType<std::pair<StringType const, basic_json>>>;


Synopsis

Declared in <nlohmann/json.hpp>
using other_error = detail::other_error;


Synopsis

Declared in <nlohmann/json.hpp>
using out_of_range = detail::out_of_range;


Synopsis

Declared in <nlohmann/json.hpp>
using parse_error = detail::parse_error;


parser event types

Synopsis

Declared in <nlohmann/json.hpp>
using parse_event_t = detail::parse_event_t;


per-element parser callback type

Synopsis

Declared in <nlohmann/json.hpp>
using parser_callback_t = detail::parser_callback_t<basic_json>;


the type of an element pointer

Synopsis

Declared in <nlohmann/json.hpp>
using pointer = std::allocator_traits<allocator_type>::pointer;


the type of an element reference

Synopsis

Declared in <nlohmann/json.hpp>
using reference = value_type&;


a reverse iterator for a basic_json container

Synopsis

Declared in <nlohmann/json.hpp>
using reverse_iterator = json_reverse_iterator<basic_json::iterator>;


a type to represent container sizes

Synopsis

Declared in <nlohmann/json.hpp>
using size_type = std::size_t;


a type for a string

Synopsis

Declared in <nlohmann/json.hpp>
using string_t = StringType;


Synopsis

Declared in <nlohmann/json.hpp>
using type_error = detail::type_error;


Synopsis

Declared in <nlohmann/json.hpp>
using value_t = detail::value_t;


the type of elements in a basic_json container

Synopsis

Declared in <nlohmann/json.hpp>
using value_type = basic_json;


copy constructor

Synopsis

Declared in <nlohmann/json.hpp>
basic_json(basic_json const& other);


Parameters

Name Description
other The object to copy construct from
move constructor

Synopsis

Declared in <nlohmann/json.hpp>
basic_json(basic_json&& other) noexcept;


Parameters

Name Description
other The object to move construct from
create a null object

Synopsis

Declared in <nlohmann/json.hpp>
basic_json(std::nullptr_t value = nullptr) noexcept;


Parameters

Name Description
value The object to construct from
create an empty value with a given type

Synopsis

Declared in <nlohmann/json.hpp>
basic_json(value_t const v);


Parameters

Name Description
v The object to construct from
create a JSON value from an existing one

Synopsis

Declared in <nlohmann/json.hpp>
template<typename BasicJsonType>
requires detail::is_basic_json<BasicJsonType>::value&& !std::is_same<basic_json, BasicJsonType>::value
basic_json(BasicJsonType const& val);


Parameters

Name Description
val The object to copy construct from
////////////////////////////////////

Synopsis

Declared in <nlohmann/json.hpp>
template<typename JsonRef>
requires detail::conjunction<detail::is_json_ref<JsonRef>,
                                 std::is_same<typename JsonRef::value_type, basic_json>>::value
basic_json(JsonRef const& ref);


Parameters

Name Description
ref The object to copy construct from
create a JSON value from compatible types

Synopsis

Declared in <nlohmann/json.hpp>
template<
    typename CompatibleType,
    typename U = detail::uncvref_t<CompatibleType>>
requires !detail::is_basic_json<U>::value && detail::is_compatible_type<basic_json_t, U>::value
basic_json(CompatibleType&& val) noexcept(noexcept(JSONSerializer<U, void>::to_json(std::declval<basic_json_t &>(), std::forward<CompatibleType>(val))));


Parameters

Name Description
val The object to move construct from
construct an array with count copies of given value

Synopsis

Declared in <nlohmann/json.hpp>
basic_json(
    size_type cnt,
    basic_json const& val);


Parameters

Name Description
cnt The object to construct from
val a class to store JSON values
construct a JSON container given an iterator range

Synopsis

Declared in <nlohmann/json.hpp>
template<class InputIT>
requires std::is_same<InputIT, typename basic_json_t::iterator>::value ||
                   std::is_same<InputIT, typename basic_json_t::const_iterator>::value
basic_json(
    InputIT first,
    InputIT last);


Parameters

Name Description
first The object to construct from
create a container (array or object) from an initializer list

Synopsis

Declared in <nlohmann/json.hpp>
basic_json(
    initializer_list_t init,
    bool type_deduction = true,
    value_t manual_type = value_t::array);


Parameters

Name Description
init The object to construct from
destructor

Synopsis

Declared in <nlohmann/json.hpp>
~basic_json() noexcept;


copy assignment

Synopsis

Declared in <nlohmann/json.hpp>
basic_json&
operator=(basic_json other) noexcept(std::is_nothrow_move_constructible<value_t>::value && std::is_nothrow_move_assignable<value_t>::value && std::is_nothrow_move_constructible<json_value>::value && std::is_nothrow_move_assignable<json_value>::value && std::is_nothrow_move_assignable<json_base_class_t>::value);


Return Value

Reference to the current object

Parameters

Name Description
other The object to assign from
access specified array element with bounds checking

Synopsis

Declared in <nlohmann/json.hpp>
reference
at(size_type idx);


Return Value

the type of an element reference

Parameters

Name Description
idx a type to represent container sizes
access specified array element with bounds checking

Synopsis

Declared in <nlohmann/json.hpp>
const_reference
at(size_type idx) const;


Return Value

the type of an element const reference

Parameters

Name Description
idx a type to represent container sizes
access specified element via JSON Pointer

Synopsis

Declared in <nlohmann/json.hpp>
reference
at(json_pointer const& ptr);


Return Value

the type of an element reference

Parameters

Name Description
ptr JSON Pointer, see nlohmann::json_pointer
access specified element via JSON Pointer

Synopsis

Declared in <nlohmann/json.hpp>
const_reference
at(json_pointer const& ptr) const;


Return Value

the type of an element const reference

Parameters

Name Description
ptr JSON Pointer, see nlohmann::json_pointer
access specified object element with bounds checking

Synopsis

Declared in <nlohmann/json.hpp>
reference
at(object_t::key_type const& key);


Return Value

the type of an element reference
access specified object element with bounds checking

Synopsis

Declared in <nlohmann/json.hpp>
const_reference
at(object_t::key_type const& key) const;


Return Value

the type of an element const reference

Synopsis

Declared in <nlohmann/json.hpp>
template<typename BasicJsonType>
requires detail::is_basic_json<BasicJsonType>::value
[[__deprecated__]]
reference
at(nlohmann::json_pointer<BasicJsonType> const& ptr);


Synopsis

Declared in <nlohmann/json.hpp>
template<typename BasicJsonType>
requires detail::is_basic_json<BasicJsonType>::value
[[__deprecated__]]
const_reference
at(nlohmann::json_pointer<BasicJsonType> const& ptr) const;


access specified object element with bounds checking

Synopsis

Declared in <nlohmann/json.hpp>
template<class KeyType>
requires detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value
const_reference
at(KeyType&& key) const;


Return Value

the type of an element const reference
access specified object element with bounds checking

Synopsis

Declared in <nlohmann/json.hpp>
template<class KeyType>
requires detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value
reference
at(KeyType&& key);


Return Value

the type of an element reference
access the last element

Synopsis

Declared in <nlohmann/json.hpp>
reference
back();


Return Value

the type of an element reference
access the last element

Synopsis

Declared in <nlohmann/json.hpp>
const_reference
back() const;


Return Value

the type of an element const reference
returns an iterator to the first element

Synopsis

Declared in <nlohmann/json.hpp>
iterator
begin() noexcept;


Return Value

an iterator for a basic_json container
returns an iterator to the first element

Synopsis

Declared in <nlohmann/json.hpp>
const_iterator
begin() const noexcept;


Return Value

a const iterator for a basic_json container
returns a const iterator to the first element

Synopsis

Declared in <nlohmann/json.hpp>
const_iterator
cbegin() const noexcept;


Return Value

a const iterator for a basic_json container
returns an iterator to one past the last element

Synopsis

Declared in <nlohmann/json.hpp>
const_iterator
cend() const noexcept;


Return Value

a const iterator for a basic_json container
clears the contents

Synopsis

Declared in <nlohmann/json.hpp>
void
clear() noexcept;


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

Synopsis

Declared in <nlohmann/json.hpp>
bool
contains(json_pointer const& ptr) const;


Parameters

Name Description
ptr JSON Pointer, see nlohmann::json_pointer
check the existence of an element in a JSON object

Synopsis

Declared in <nlohmann/json.hpp>
bool
contains(object_t::key_type const& key) const;


Synopsis

Declared in <nlohmann/json.hpp>
template<typename BasicJsonType>
requires detail::is_basic_json<BasicJsonType>::value
[[__deprecated__]]
bool
contains(nlohmann::json_pointer<BasicJsonType> const& ptr) const;


check the existence of an element in a JSON object

Synopsis

Declared in <nlohmann/json.hpp>
template<class KeyType>
requires detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value
bool
contains(KeyType&& key) const;


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

Synopsis

Declared in <nlohmann/json.hpp>
size_type
count(object_t::key_type const& key) const;


Return Value

a type to represent container sizes
returns the number of occurrences of a key in a JSON object

Synopsis

Declared in <nlohmann/json.hpp>
template<class KeyType>
requires detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value
size_type
count(KeyType&& key) const;


Return Value

a type to represent container sizes
returns a const reverse iterator to the last element

Synopsis

Declared in <nlohmann/json.hpp>
const_reverse_iterator
crbegin() const noexcept;


Return Value

a const reverse iterator for a basic_json container
returns a const reverse iterator to one before the first

Synopsis

Declared in <nlohmann/json.hpp>
const_reverse_iterator
crend() const noexcept;


Return Value

a const reverse iterator for a basic_json container
serialization

Synopsis

Declared in <nlohmann/json.hpp>
string_t
dump(
    int const indent = -1,
    char const indent_char = ' ',
    bool const ensure_ascii = false,
    error_handler_t const error_handler = error_handler_t::strict) const;


Return Value

a type for a string

Parameters

Name Description
error_handler how to treat decoding errors
add an object to an object if key does not exist

Synopsis

Declared in <nlohmann/json.hpp>
template<class... Args>
std::pair<iterator, bool>
emplace(Args...&&... args);


add an object to an array

Synopsis

Declared in <nlohmann/json.hpp>
template<class... Args>
reference
emplace_back(Args...&&... args);


Return Value

the type of an element reference
checks whether the container is empty.

Synopsis

Declared in <nlohmann/json.hpp>
bool
empty() const noexcept;


returns an iterator to one past the last element

Synopsis

Declared in <nlohmann/json.hpp>
iterator
end() noexcept;


Return Value

an iterator for a basic_json container
returns an iterator to one past the last element

Synopsis

Declared in <nlohmann/json.hpp>
const_iterator
end() const noexcept;


Return Value

a const iterator for a basic_json container
remove element from a JSON array given an index

Synopsis

Declared in <nlohmann/json.hpp>
void
erase(size_type const idx);


Parameters

Name Description
idx a type to represent container sizes
remove element from a JSON object given a key

Synopsis

Declared in <nlohmann/json.hpp>
size_type
erase(object_t::key_type const& key);


Return Value

a type to represent container sizes
remove element given an iterator

Synopsis

Declared in <nlohmann/json.hpp>
template<class IteratorType>
requires std::is_same<IteratorType, typename basic_json_t::iterator>::value ||
                   std::is_same<IteratorType, typename basic_json_t::const_iterator>::value
IteratorType
erase(IteratorType pos);


remove element from a JSON object given a key

Synopsis

Declared in <nlohmann/json.hpp>
template<class KeyType>
requires detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value
size_type
erase(KeyType&& key);


Return Value

a type to represent container sizes
remove elements given an iterator range

Synopsis

Declared in <nlohmann/json.hpp>
template<class IteratorType>
requires std::is_same<IteratorType, typename basic_json_t::iterator>::value ||
                   std::is_same<IteratorType, typename basic_json_t::const_iterator>::value
IteratorType
erase(
    IteratorType first,
    IteratorType last);


find an element in a JSON object

Synopsis

Declared in <nlohmann/json.hpp>
iterator
find(object_t::key_type const& key);


Return Value

an iterator for a basic_json container
find an element in a JSON object

Synopsis

Declared in <nlohmann/json.hpp>
const_iterator
find(object_t::key_type const& key) const;


Return Value

a const iterator for a basic_json container
find an element in a JSON object

Synopsis

Declared in <nlohmann/json.hpp>
template<class KeyType>
requires detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value
const_iterator
find(KeyType&& key) const;


Return Value

a const iterator for a basic_json container
find an element in a JSON object

Synopsis

Declared in <nlohmann/json.hpp>
template<class KeyType>
requires detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value
iterator
find(KeyType&& key);


Return Value

an iterator for a basic_json container
return flattened JSON value

Synopsis

Declared in <nlohmann/json.hpp>
basic_json
flatten() const;


Return Value

a class to store JSON values
access the first element

Synopsis

Declared in <nlohmann/json.hpp>
reference
front();


Return Value

the type of an element reference
access the first element

Synopsis

Declared in <nlohmann/json.hpp>
const_reference
front() const;


Return Value

the type of an element const reference
get a pointer value (explicit)

Synopsis

Declared in <nlohmann/json.hpp>
template<typename PointerType>
requires std::is_pointer<PointerType>::value
decltype(std::declval<basic_json_t&>().template get_ptr<PointerType>())
get() noexcept;


Description

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

WARNING

The pointer becomes invalid if the underlying JSON object changes.

Constant.

{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}

Return Value

pointer to the internally stored JSON value if the requested pointer type PointerType fits to the JSON value; nullptr otherwise

Template Parameters

Name Description
PointerType pointer type; must be a pointer to array_t, object_t, string_t, boolean_t, number_integer_t, number_unsigned_t, or number_float_t.
get a (pointer) value (explicit)

Synopsis

Declared in <nlohmann/json.hpp>
template<
    typename ValueTypeCV,
    typename ValueType = detail::uncvref_t<ValueTypeCV>>
constexpr
decltype(std::declval<const basic_json_t&>().template get_impl<ValueType>(detail::priority_tag<4> {}))
get() const noexcept(noexcept(std::declval<const basic_json_t &>().template get_impl<ValueType>(detail::priority_tag<4>{})));


Description

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

- If the requested type is a pointer to the internally stored JSON value that pointer is returned. No copies are made.

- If the requested type is the current basic_json, or a different basic_json convertible from the current basic_json.

- Otherwise the value is converted by calling the json_serializer<ValueType> from_json() method.

Exceptions

Name Thrown on
what json_serializer<ValueType> from_json() method throws if conversion is required

Return Value

copy of the JSON value, converted to

Template Parameters

Name Description
ValueTypeCV the provided value type
ValueType the returned value type
ValueType if necessary
get a binary value

Synopsis

Declared in <nlohmann/json.hpp>
binary_t&
get_binary();


Return Value

a type for a packed binary type
get a binary value

Synopsis

Declared in <nlohmann/json.hpp>
binary_t const&
get_binary() const;


Return Value

a type for a packed binary type
get a pointer value (implicit)

Synopsis

Declared in <nlohmann/json.hpp>
template<typename PointerType>
requires std::is_pointer<PointerType>::value&&
                   std::is_const<typename std::remove_pointer<PointerType>::type>::value
constexpr
decltype(std::declval<const basic_json_t&>().get_impl_ptr(std::declval<PointerType>()))
get_ptr() const noexcept;


get a pointer value (implicit)

Synopsis

Declared in <nlohmann/json.hpp>
template<typename PointerType>
requires std::is_pointer<PointerType>::value
decltype(std::declval<basic_json_t&>().get_impl_ptr(std::declval<PointerType>()))
get_ptr() noexcept;


get a reference value (implicit)

Synopsis

Declared in <nlohmann/json.hpp>
template<typename ReferenceType>
requires std::is_reference<ReferenceType>::value
ReferenceType
get_ref();


get a reference value (implicit)

Synopsis

Declared in <nlohmann/json.hpp>
template<typename ReferenceType>
requires std::is_reference<ReferenceType>::value&&
                   std::is_const<typename std::remove_reference<ReferenceType>::type>::value
ReferenceType
get_ref() const;


get a value (explicit)

Synopsis

Declared in <nlohmann/json.hpp>
template<typename ValueType>
requires !detail::is_basic_json<ValueType>::value&&
                   detail::has_from_json<basic_json_t, ValueType>::value
ValueType&
get_to(ValueType& v) const noexcept(noexcept(JSONSerializer<ValueType, void>::from_json(std::declval<const basic_json_t &>(), v)));


Synopsis

Declared in <nlohmann/json.hpp>
template<typename ValueType>
requires detail::is_basic_json<ValueType>::value
ValueType&
get_to(ValueType& v) const;


Synopsis

Declared in <nlohmann/json.hpp>
template<
    typename T,
    std::size_t N,
    typename Array = T(&)[]>
requires detail::has_from_json<basic_json_t, Array>::value
Array
get_to(T(& v)[]) const noexcept(noexcept(JSONSerializer<Array, void>::from_json(std::declval<const basic_json_t &>(), v)));


inserts range of elements into object

Synopsis

Declared in <nlohmann/json.hpp>
void
insert(
    const_iterator first,
    const_iterator last);


Parameters

Name Description
first a const iterator for a basic_json container
last a const iterator for a basic_json container
inserts elements from initializer list into array

Synopsis

Declared in <nlohmann/json.hpp>
iterator
insert(
    const_iterator pos,
    initializer_list_t ilist);


Return Value

an iterator for a basic_json container

Parameters

Name Description
pos a const iterator for a basic_json container
ilist helper type for initializer lists of basic_json values
inserts element into array

Synopsis

Declared in <nlohmann/json.hpp>
iterator
insert(
    const_iterator pos,
    basic_json const& val);


Return Value

an iterator for a basic_json container

Parameters

Name Description
pos a const iterator for a basic_json container
val a class to store JSON values
inserts element into array

Synopsis

Declared in <nlohmann/json.hpp>
iterator
insert(
    const_iterator pos,
    basic_json&& val);


Return Value

an iterator for a basic_json container

Parameters

Name Description
pos a const iterator for a basic_json container
val a class to store JSON values
inserts range of elements into array

Synopsis

Declared in <nlohmann/json.hpp>
iterator
insert(
    const_iterator pos,
    const_iterator first,
    const_iterator last);


Return Value

an iterator for a basic_json container

Parameters

Name Description
pos a const iterator for a basic_json container
first a const iterator for a basic_json container
last a const iterator for a basic_json container
inserts copies of element into array

Synopsis

Declared in <nlohmann/json.hpp>
iterator
insert(
    const_iterator pos,
    size_type cnt,
    basic_json const& val);


Return Value

an iterator for a basic_json container

Parameters

Name Description
pos a const iterator for a basic_json container
cnt a type to represent container sizes
val a class to store JSON values
Helper for insertion of an iterator

Synopsis

Declared in <nlohmann/json.hpp>
template<typename... Args>
iterator
insert_iterator(
    const_iterator pos,
    Args...&&... args);


Description

NOTE

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

Return Value

an iterator for a basic_json container

Parameters

Name Description
pos a const iterator for a basic_json container
return whether value is an array

Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_array() const noexcept;


return whether value is a binary array

Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_binary() const noexcept;


return whether value is a boolean

Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_boolean() const noexcept;


return whether value is discarded

Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_discarded() const noexcept;


return whether value is null

Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_null() const noexcept;


return whether value is a number

Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_number() const noexcept;


return whether value is a floating-point number

Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_number_float() const noexcept;


return whether value is an integer number

Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_number_integer() const noexcept;


return whether value is an unsigned integer number

Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_number_unsigned() const noexcept;


return whether value is an object

Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_object() const noexcept;


return whether type is primitive

Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_primitive() const noexcept;


return whether value is a string

Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_string() const noexcept;


return whether type is structured

Synopsis

Declared in <nlohmann/json.hpp>
constexpr
bool
is_structured() const noexcept;


helper to access iterator member functions in range-based for

Synopsis

Declared in <nlohmann/json.hpp>
iteration_proxy<iterator>
items() noexcept;


helper to access iterator member functions in range-based for

Synopsis

Declared in <nlohmann/json.hpp>
iteration_proxy<const_iterator>
items() const noexcept;


returns the maximum possible number of elements

Synopsis

Declared in <nlohmann/json.hpp>
size_type
max_size() const noexcept;


Return Value

a type to represent container sizes
applies a JSON Merge Patch

Synopsis

Declared in <nlohmann/json.hpp>
void
merge_patch(basic_json const& apply_patch);


Parameters

Name Description
apply_patch a class to store JSON values
add an object to an object

Synopsis

Declared in <nlohmann/json.hpp>
reference
operator+=(initializer_list_t init);


Return Value

the type of an element reference

Parameters

Name Description
init The right operand
add an object to an array

Synopsis

Declared in <nlohmann/json.hpp>
reference
operator+=(basic_json const& val);


Return Value

the type of an element reference

Parameters

Name Description
val The right operand
add an object to an object

Synopsis

Declared in <nlohmann/json.hpp>
reference
operator+=(object_t::value_type const& val);


Return Value

the type of an element reference

Parameters

Name Description
val The right operand
add an object to an array

Synopsis

Declared in <nlohmann/json.hpp>
reference
operator+=(basic_json&& val);


Return Value

the type of an element reference

Parameters

Name Description
val The right operand
access specified object element

Synopsis

Declared in <nlohmann/json.hpp>
reference
operator[](object_t::key_type key);


Return Value

the type of an element reference

Parameters

Name Description
key The right operand
access specified array element

Synopsis

Declared in <nlohmann/json.hpp>
reference
operator[](size_type idx);


Return Value

the type of an element reference

Parameters

Name Description
idx The right operand
access specified array element

Synopsis

Declared in <nlohmann/json.hpp>
const_reference
operator[](size_type idx) const;


Return Value

the type of an element const reference

Parameters

Name Description
idx The right operand
access specified element via JSON Pointer

Synopsis

Declared in <nlohmann/json.hpp>
reference
operator[](json_pointer const& ptr);


Return Value

the type of an element reference

Parameters

Name Description
ptr The right operand
access specified element via JSON Pointer

Synopsis

Declared in <nlohmann/json.hpp>
const_reference
operator[](json_pointer const& ptr) const;


Return Value

the type of an element const reference

Parameters

Name Description
ptr The right operand
access specified object element

Synopsis

Declared in <nlohmann/json.hpp>
const_reference
operator[](object_t::key_type const& key) const;


Return Value

the type of an element const reference

Parameters

Name Description
key The right operand
Subscript operator

Synopsis

Declared in <nlohmann/json.hpp>
template<typename BasicJsonType>
requires detail::is_basic_json<BasicJsonType>::value
[[__deprecated__]]
const_reference
operator[](nlohmann::json_pointer<BasicJsonType> const& ptr) const;


Return Value

the type of an element const reference

Parameters

Name Description
ptr The right operand
Subscript operator

Synopsis

Declared in <nlohmann/json.hpp>
template<typename BasicJsonType>
requires detail::is_basic_json<BasicJsonType>::value
[[__deprecated__]]
reference
operator[](nlohmann::json_pointer<BasicJsonType> const& ptr);


Return Value

the type of an element reference

Parameters

Name Description
ptr The right operand
access specified object element

Synopsis

Declared in <nlohmann/json.hpp>
template<class KeyType>
requires detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value
reference
operator[](KeyType&& key);


Return Value

the type of an element reference

Parameters

Name Description
key The right operand
access specified object element

Synopsis

Declared in <nlohmann/json.hpp>
template<class KeyType>
requires detail::is_usable_as_basic_json_key_type<basic_json_t, KeyType>::value
const_reference
operator[](KeyType&& key) const;


Return Value

the type of an element const reference

Parameters

Name Description
key The right operand
Subscript operator

Synopsis

Declared in <nlohmann/json.hpp>
template<typename T>
reference
operator[](T* key);


Return Value

the type of an element reference

Parameters

Name Description
key The right operand
Subscript operator

Synopsis

Declared in <nlohmann/json.hpp>
template<typename T>
const_reference
operator[](T* key) const;


Return Value

the type of an element const reference

Parameters

Name Description
key The right operand
applies a JSON patch to a copy of the current object

Synopsis

Declared in <nlohmann/json.hpp>
basic_json
patch(basic_json const& json_patch) const;


Return Value

a class to store JSON values

Parameters

Name Description
json_patch a class to store JSON values
applies a JSON patch in-place without copying the object

Synopsis

Declared in <nlohmann/json.hpp>
void
patch_inplace(basic_json const& json_patch);


Parameters

Name Description
json_patch a class to store JSON values
add an object to an object

Synopsis

Declared in <nlohmann/json.hpp>
void
push_back(initializer_list_t init);


Parameters

Name Description
init helper type for initializer lists of basic_json values
add an object to an array

Synopsis

Declared in <nlohmann/json.hpp>
void
push_back(basic_json const& val);


Parameters

Name Description
val a class to store JSON values
add an object to an object

Synopsis

Declared in <nlohmann/json.hpp>
void
push_back(object_t::value_type const& val);


add an object to an array

Synopsis

Declared in <nlohmann/json.hpp>
void
push_back(basic_json&& val);


Parameters

Name Description
val a class to store JSON values
returns an iterator to the reverse-beginning

Synopsis

Declared in <nlohmann/json.hpp>
reverse_iterator
rbegin() noexcept;


Return Value

a reverse iterator for a basic_json container
returns an iterator to the reverse-beginning

Synopsis

Declared in <nlohmann/json.hpp>
const_reverse_iterator
rbegin() const noexcept;


Return Value

a const reverse iterator for a basic_json container
returns an iterator to the reverse-end

Synopsis

Declared in <nlohmann/json.hpp>
reverse_iterator
rend() noexcept;


Return Value

a reverse iterator for a basic_json container
returns an iterator to the reverse-end

Synopsis

Declared in <nlohmann/json.hpp>
const_reverse_iterator
rend() const noexcept;


Return Value

a const reverse iterator for a basic_json container
returns the number of elements

Synopsis

Declared in <nlohmann/json.hpp>
size_type
size() const noexcept;


Return Value

a type to represent container sizes
exchanges the values

Synopsis

Declared in <nlohmann/json.hpp>
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);


Parameters

Name Description
other the type of an element reference
exchanges the values

Synopsis

Declared in <nlohmann/json.hpp>
void
swap(array_t& other);


Parameters

Name Description
other a type for an array
exchanges the values

Synopsis

Declared in <nlohmann/json.hpp>
void
swap(binary_t& other);


Parameters

Name Description
other a type for a packed binary type
exchanges the values

Synopsis

Declared in <nlohmann/json.hpp>
void
swap(binary_t::container_type& other);


exchanges the values

Synopsis

Declared in <nlohmann/json.hpp>
void
swap(object_t& other);


Parameters

Name Description
other a type for an object
exchanges the values

Synopsis

Declared in <nlohmann/json.hpp>
void
swap(string_t& other);


Parameters

Name Description
other a type for a string
return the type of the JSON value (explicit)

Synopsis

Declared in <nlohmann/json.hpp>
constexpr
value_t
type() const noexcept;


return the type as string

Synopsis

Declared in <nlohmann/json.hpp>
[[__returns_nonnull__]]
char const*
type_name() const noexcept;


unflatten a previously flattened JSON value

Synopsis

Declared in <nlohmann/json.hpp>
basic_json
unflatten() const;


Return Value

a class to store JSON values
updates a JSON object from another object, overwriting existing keys

Synopsis

Declared in <nlohmann/json.hpp>
void
update(
    const_reference j,
    bool merge_objects = false);


Parameters

Name Description
j the type of an element const reference
updates a JSON object from another object, overwriting existing keys

Synopsis

Declared in <nlohmann/json.hpp>
void
update(
    const_iterator first,
    const_iterator last,
    bool merge_objects = false);


Parameters

Name Description
first a const iterator for a basic_json container
last a const iterator for a basic_json container
access specified object element via JSON Pointer with default value

Synopsis

Declared in <nlohmann/json.hpp>
template<class ValueType>
requires detail::is_getable<basic_json_t, ValueType>::value
                   && !std::is_same<value_t, detail::uncvref_t<ValueType>>::value
ValueType
value(
    json_pointer const& ptr,
    ValueType const& default_value) const;


Parameters

Name Description
ptr JSON Pointer, see nlohmann::json_pointer
access specified object element with default value

Synopsis

Declared in <nlohmann/json.hpp>
template<class ValueType>
requires !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
ValueType
value(
    object_t::key_type const& key,
    ValueType const& default_value) const;


access specified object element via JSON Pointer with default value

Synopsis

Declared in <nlohmann/json.hpp>
template<
    class ValueType,
    class ReturnType = value_return_type<ValueType>::type>
requires detail::is_getable<basic_json_t, ReturnType>::value
                   && !std::is_same<value_t, detail::uncvref_t<ValueType>>::value
ReturnType
value(
    json_pointer const& ptr,
    ValueType&& default_value) const;


Parameters

Name Description
ptr JSON Pointer, see nlohmann::json_pointer
access specified object element with default value

Synopsis

Declared in <nlohmann/json.hpp>
template<
    class ValueType,
    class ReturnType = value_return_type<ValueType>::type>
requires !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
ReturnType
value(
    object_t::key_type const& key,
    ValueType&& default_value) const;


Synopsis

Declared in <nlohmann/json.hpp>
template<
    class ValueType,
    class BasicJsonType>
requires detail::is_basic_json<BasicJsonType>::value
                   && detail::is_getable<basic_json_t, ValueType>::value
                   && !std::is_same<value_t, detail::uncvref_t<ValueType>>::value
[[__deprecated__]]
ValueType
value(
    nlohmann::json_pointer<BasicJsonType> const& ptr,
    ValueType const& default_value) const;


access specified object element with default value

Synopsis

Declared in <nlohmann/json.hpp>
template<
    class ValueType,
    class KeyType>
requires 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
ValueType
value(
    KeyType&& key,
    ValueType const& default_value) const;


Synopsis

Declared in <nlohmann/json.hpp>
template<
    class ValueType,
    class BasicJsonType,
    class ReturnType = value_return_type<ValueType>::type>
requires detail::is_basic_json<BasicJsonType>::value
                   && detail::is_getable<basic_json_t, ReturnType>::value
                   && !std::is_same<value_t, detail::uncvref_t<ValueType>>::value
[[__deprecated__]]
ReturnType
value(
    nlohmann::json_pointer<BasicJsonType> const& ptr,
    ValueType&& default_value) const;


access specified object element via JSON Pointer with default value

Synopsis

Declared in <nlohmann/json.hpp>
template<
    class ValueType,
    class KeyType,
    class ReturnType = value_return_type<ValueType>::type>
requires 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
ReturnType
value(
    KeyType&& key,
    ValueType&& default_value) const;


get a value (implicit)

Synopsis

Declared in <nlohmann/json.hpp>
template<typename ValueType>
requires 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>>>,
#if defined(JSON_HAS_CPP_17) && (defined(__GNUC__) || (defined(_MSC_VER) && _MSC_VER >= 1910 && _MSC_VER <= 1914))
                                                detail::negation<std::is_same<ValueType, std::string_view>>,
#endif
#if defined(JSON_HAS_CPP_17) && JSON_HAS_STATIC_RTTI
                                                detail::negation<std::is_same<ValueType, std::any>>,
#endif
                                                detail::is_detected_lazy<detail::get_template_function, const basic_json_t&, ValueType>
                                                >::value
operator ValueType() const;


Description

Implicit type conversion between the JSON value and a compatible value. The call is realized by calling get() const.

Linear in the size of the JSON value.

{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}

Exceptions

Name Thrown on
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

Return Value

copy of the JSON value, converted to type ValueType

Template Parameters

Name Description
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.
return the type of the JSON value (implicit)

Synopsis

Declared in <nlohmann/json.hpp>
constexpr
operator value_t() const noexcept;


Return Value

The object converted to value_t
comparison: equal

Synopsis

Declared in <nlohmann/json.hpp>
template<typename ScalarType>
requires std::is_scalar_v<ScalarType>
bool
operator==(ScalarType rhs) const noexcept;


Return Value

true if the objects are equal, false otherwise

Parameters

Name Description
rhs The right operand
comparison: equal

Synopsis

Declared in <nlohmann/json.hpp>
bool
operator==(const_reference rhs) const noexcept;


Return Value

true if the objects are equal, false otherwise

Parameters

Name Description
rhs The right operand
comparison: not equal

Synopsis

Declared in <nlohmann/json.hpp>
bool
operator!=(const_reference rhs) const noexcept;


Return Value

true if the objects are not equal, false otherwise

Parameters

Name Description
rhs The right operand
comparison: 3-way

Synopsis

Declared in <nlohmann/json.hpp>
template<typename ScalarType>
requires std::is_scalar_v<ScalarType>
std::partial_ordering
operator<=>(ScalarType rhs) const noexcept;


Return Value

The relative order of the objects

Parameters

Name Description
rhs The right operand
comparison: 3-way

Synopsis

Declared in <nlohmann/json.hpp>
std::partial_ordering
operator<=>(const_reference rhs) const noexcept;


Return Value

The relative order of the objects

Parameters

Name Description
rhs The right operand

Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__, __deprecated__]]
static
bool
accept(
    detail::span_input_adapter&& i,
    bool const ignore_comments = false,
    bool const ignore_trailing_commas = false);


check if the input is valid JSON

Synopsis

Declared in <nlohmann/json.hpp>
template<typename InputType>
static
bool
accept(
    InputType&& i,
    bool const ignore_comments = false,
    bool const ignore_trailing_commas = false);


check if the input is valid JSON

Synopsis

Declared in <nlohmann/json.hpp>
template<typename IteratorType>
static
bool
accept(
    IteratorType first,
    IteratorType last,
    bool const ignore_comments = false,
    bool const ignore_trailing_commas = false);


explicitly create an array from an initializer list

Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__]]
static
basic_json
array(initializer_list_t init = {});


Return Value

a class to store JSON values

Parameters

Name Description
init helper type for initializer lists of basic_json values
explicitly create a binary array (without subtype)

Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__]]
static
basic_json
binary(binary_t::container_type const& init);


Return Value

a class to store JSON values
explicitly create a binary array

Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__]]
static
basic_json
binary(binary_t::container_type&& init);


Return Value

a class to store JSON values
explicitly create a binary array (with subtype)

Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__]]
static
basic_json
binary(
    binary_t::container_type const& init,
    binary_t::subtype_type subtype);


Return Value

a class to store JSON values
explicitly create a binary array (with subtype)

Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__]]
static
basic_json
binary(
    binary_t::container_type&& init,
    binary_t::subtype_type subtype);


Return Value

a class to store JSON values
creates a diff as a JSON patch

Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__]]
static
basic_json
diff(
    basic_json const& source,
    basic_json const& target,
    string_t const& path = "");


Return Value

a class to store JSON values

Parameters

Name Description
source a class to store JSON values
target a class to store JSON values
path a type for a string
create a JSON value from an input in BJData format

Synopsis

Declared in <nlohmann/json.hpp>
template<typename InputType>
[[__warn_unused_result__]]
static
basic_json
from_bjdata(
    InputType&& i,
    bool const strict = true,
    bool const allow_exceptions = true);


Return Value

a class to store JSON values
create a JSON value from an input in BJData format

Synopsis

Declared in <nlohmann/json.hpp>
template<typename IteratorType>
[[__warn_unused_result__]]
static
basic_json
from_bjdata(
    IteratorType first,
    IteratorType last,
    bool const strict = true,
    bool const allow_exceptions = true);


Return Value

a class to store JSON values

Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__, __deprecated__]]
static
basic_json
from_bson(
    detail::span_input_adapter&& i,
    bool const strict = true,
    bool const allow_exceptions = true);


create a JSON value from an input in BSON format

Synopsis

Declared in <nlohmann/json.hpp>
template<typename InputType>
[[__warn_unused_result__]]
static
basic_json
from_bson(
    InputType&& i,
    bool const strict = true,
    bool const allow_exceptions = true);


Return Value

a class to store JSON values
create a JSON value from an input in BSON format

Synopsis

Declared in <nlohmann/json.hpp>
template<typename IteratorType>
[[__warn_unused_result__]]
static
basic_json
from_bson(
    IteratorType first,
    IteratorType last,
    bool const strict = true,
    bool const allow_exceptions = true);


Return Value

a class to store JSON values

Synopsis

Declared in <nlohmann/json.hpp>
template<typename T>
[[__warn_unused_result__, __deprecated__]]
static
basic_json
from_bson(
    T const* ptr,
    std::size_t len,
    bool const strict = true,
    bool const allow_exceptions = true);


Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__, __deprecated__]]
static
basic_json
from_cbor(
    detail::span_input_adapter&& i,
    bool const strict = true,
    bool const allow_exceptions = true,
    cbor_tag_handler_t const tag_handler = cbor_tag_handler_t::error);


create a JSON value from an input in CBOR format

Synopsis

Declared in <nlohmann/json.hpp>
template<typename InputType>
[[__warn_unused_result__]]
static
basic_json
from_cbor(
    InputType&& i,
    bool const strict = true,
    bool const allow_exceptions = true,
    cbor_tag_handler_t const tag_handler = cbor_tag_handler_t::error);


Return Value

a class to store JSON values

Parameters

Name Description
tag_handler how to treat CBOR tags
create a JSON value from an input in CBOR format

Synopsis

Declared in <nlohmann/json.hpp>
template<typename IteratorType>
[[__warn_unused_result__]]
static
basic_json
from_cbor(
    IteratorType first,
    IteratorType last,
    bool const strict = true,
    bool const allow_exceptions = true,
    cbor_tag_handler_t const tag_handler = cbor_tag_handler_t::error);


Return Value

a class to store JSON values

Parameters

Name Description
tag_handler how to treat CBOR tags

Synopsis

Declared in <nlohmann/json.hpp>
template<typename T>
[[__warn_unused_result__, __deprecated__]]
static
basic_json
from_cbor(
    T const* ptr,
    std::size_t len,
    bool const strict = true,
    bool const allow_exceptions = true,
    cbor_tag_handler_t const tag_handler = cbor_tag_handler_t::error);


Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__, __deprecated__]]
static
basic_json
from_msgpack(
    detail::span_input_adapter&& i,
    bool const strict = true,
    bool const allow_exceptions = true);


create a JSON value from an input in MessagePack format

Synopsis

Declared in <nlohmann/json.hpp>
template<typename InputType>
[[__warn_unused_result__]]
static
basic_json
from_msgpack(
    InputType&& i,
    bool const strict = true,
    bool const allow_exceptions = true);


Return Value

a class to store JSON values
create a JSON value from an input in MessagePack format

Synopsis

Declared in <nlohmann/json.hpp>
template<typename IteratorType>
[[__warn_unused_result__]]
static
basic_json
from_msgpack(
    IteratorType first,
    IteratorType last,
    bool const strict = true,
    bool const allow_exceptions = true);


Return Value

a class to store JSON values

Synopsis

Declared in <nlohmann/json.hpp>
template<typename T>
[[__warn_unused_result__, __deprecated__]]
static
basic_json
from_msgpack(
    T const* ptr,
    std::size_t len,
    bool const strict = true,
    bool const allow_exceptions = true);


Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__, __deprecated__]]
static
basic_json
from_ubjson(
    detail::span_input_adapter&& i,
    bool const strict = true,
    bool const allow_exceptions = true);


create a JSON value from an input in UBJSON format

Synopsis

Declared in <nlohmann/json.hpp>
template<typename InputType>
[[__warn_unused_result__]]
static
basic_json
from_ubjson(
    InputType&& i,
    bool const strict = true,
    bool const allow_exceptions = true);


Return Value

a class to store JSON values
create a JSON value from an input in UBJSON format

Synopsis

Declared in <nlohmann/json.hpp>
template<typename IteratorType>
[[__warn_unused_result__]]
static
basic_json
from_ubjson(
    IteratorType first,
    IteratorType last,
    bool const strict = true,
    bool const allow_exceptions = true);


Return Value

a class to store JSON values

Synopsis

Declared in <nlohmann/json.hpp>
template<typename T>
[[__warn_unused_result__, __deprecated__]]
static
basic_json
from_ubjson(
    T const* ptr,
    std::size_t len,
    bool const strict = true,
    bool const allow_exceptions = true);


returns the allocator associated with the container

Synopsis

Declared in <nlohmann/json.hpp>
static
allocator_type
get_allocator();


Return Value

the allocator type
wrapper to access iterator member functions in range-based for

Synopsis

Declared in <nlohmann/json.hpp>
[[__deprecated__]]
static
iteration_proxy<const_iterator>
iterator_wrapper(const_reference ref) noexcept;


Parameters

Name Description
ref the type of an element const reference
wrapper to access iterator member functions in range-based for

Synopsis

Declared in <nlohmann/json.hpp>
[[__deprecated__]]
static
iteration_proxy<iterator>
iterator_wrapper(reference ref) noexcept;


Parameters

Name Description
ref the type of an element reference
returns version information on the library

Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__]]
static
basic_json
meta();


Return Value

a class to store JSON values
explicitly create an object from an initializer list

Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__]]
static
basic_json
object(initializer_list_t init = {});


Return Value

a class to store JSON values

Parameters

Name Description
init helper type for initializer lists of basic_json values

Synopsis

Declared in <nlohmann/json.hpp>
[[__warn_unused_result__, __deprecated__]]
static
basic_json
parse(
    detail::span_input_adapter&& i,
    parser_callback_t cb = nullptr,
    bool const allow_exceptions = true,
    bool const ignore_comments = false,
    bool const ignore_trailing_commas = false);


deserialize from a compatible input

Synopsis

Declared in <nlohmann/json.hpp>
template<typename InputType>
[[__warn_unused_result__]]
static
basic_json
parse(
    InputType&& i,
    parser_callback_t cb = nullptr,
    bool const allow_exceptions = true,
    bool const ignore_comments = false,
    bool const ignore_trailing_commas = false);


Return Value

a class to store JSON values

Parameters

Name Description
cb per-element parser callback type
deserialize from a pair of character iterators

Synopsis

Declared in <nlohmann/json.hpp>
template<typename IteratorType>
[[__warn_unused_result__]]
static
basic_json
parse(
    IteratorType first,
    IteratorType last,
    parser_callback_t cb = nullptr,
    bool const allow_exceptions = true,
    bool const ignore_comments = false,
    bool const ignore_trailing_commas = false);


Return Value

a class to store JSON values

Parameters

Name Description
cb per-element parser callback type
generate SAX events

Synopsis

Declared in <nlohmann/json.hpp>
template<typename SAX>
[[__deprecated__, __nonnull__]]
static
bool
sax_parse(
    detail::span_input_adapter&& i,
    SAX* sax,
    input_format_t format = input_format_t::json,
    bool const strict = true,
    bool const ignore_comments = false,
    bool const ignore_trailing_commas = false);


generate SAX events

Synopsis

Declared in <nlohmann/json.hpp>
template<
    typename InputType,
    typename SAX>
[[__nonnull__]]
static
bool
sax_parse(
    InputType&& i,
    SAX* sax,
    input_format_t format = input_format_t::json,
    bool const strict = true,
    bool const ignore_comments = false,
    bool const ignore_trailing_commas = false);


generate SAX events

Synopsis

Declared in <nlohmann/json.hpp>
template<
    class IteratorType,
    class SAX>
[[__nonnull__]]
static
bool
sax_parse(
    IteratorType first,
    IteratorType last,
    SAX* sax,
    input_format_t format = input_format_t::json,
    bool const strict = true,
    bool const ignore_comments = false,
    bool const ignore_trailing_commas = false);


create a BJData serialization of a given JSON value

Synopsis

Declared in <nlohmann/json.hpp>
static
std::vector<uint8_t>
to_bjdata(
    basic_json const& j,
    bool const use_size = false,
    bool const use_type = false,
    bjdata_version_t const version = bjdata_version_t::draft2);


Parameters

Name Description
j a class to store JSON values
version how to encode BJData
create a BJData serialization of a given JSON value

Synopsis

Declared in <nlohmann/json.hpp>
static
void
to_bjdata(
    basic_json const& j,
    detail::output_adapter<uint8_t> o,
    bool const use_size = false,
    bool const use_type = false,
    bjdata_version_t const version = bjdata_version_t::draft2);


Parameters

Name Description
j a class to store JSON values
version how to encode BJData
create a BJData serialization of a given JSON value

Synopsis

Declared in <nlohmann/json.hpp>
static
void
to_bjdata(
    basic_json const& j,
    detail::output_adapter<char> o,
    bool const use_size = false,
    bool const use_type = false,
    bjdata_version_t const version = bjdata_version_t::draft2);


Parameters

Name Description
j a class to store JSON values
version how to encode BJData
create a BSON serialization of a given JSON value

Synopsis

Declared in <nlohmann/json.hpp>
static
std::vector<uint8_t>
to_bson(basic_json const& j);


Parameters

Name Description
j a class to store JSON values
create a BSON serialization of a given JSON value

Synopsis

Declared in <nlohmann/json.hpp>
static
void
to_bson(
    basic_json const& j,
    detail::output_adapter<uint8_t> o);


Parameters

Name Description
j a class to store JSON values
create a BSON serialization of a given JSON value

Synopsis

Declared in <nlohmann/json.hpp>
static
void
to_bson(
    basic_json const& j,
    detail::output_adapter<char> o);


Parameters

Name Description
j a class to store JSON values
create a CBOR serialization of a given JSON value

Synopsis

Declared in <nlohmann/json.hpp>
static
std::vector<uint8_t>
to_cbor(basic_json const& j);


Parameters

Name Description
j a class to store JSON values
create a CBOR serialization of a given JSON value

Synopsis

Declared in <nlohmann/json.hpp>
static
void
to_cbor(
    basic_json const& j,
    detail::output_adapter<uint8_t> o);


Parameters

Name Description
j a class to store JSON values
create a CBOR serialization of a given JSON value

Synopsis

Declared in <nlohmann/json.hpp>
static
void
to_cbor(
    basic_json const& j,
    detail::output_adapter<char> o);


Parameters

Name Description
j a class to store JSON values
create a MessagePack serialization of a given JSON value

Synopsis

Declared in <nlohmann/json.hpp>
static
std::vector<uint8_t>
to_msgpack(basic_json const& j);


Parameters

Name Description
j a class to store JSON values
create a MessagePack serialization of a given JSON value

Synopsis

Declared in <nlohmann/json.hpp>
static
void
to_msgpack(
    basic_json const& j,
    detail::output_adapter<uint8_t> o);


Parameters

Name Description
j a class to store JSON values
create a MessagePack serialization of a given JSON value

Synopsis

Declared in <nlohmann/json.hpp>
static
void
to_msgpack(
    basic_json const& j,
    detail::output_adapter<char> o);


Parameters

Name Description
j a class to store JSON values
create a UBJSON serialization of a given JSON value

Synopsis

Declared in <nlohmann/json.hpp>
static
std::vector<uint8_t>
to_ubjson(
    basic_json const& j,
    bool const use_size = false,
    bool const use_type = false);


Parameters

Name Description
j a class to store JSON values
create a UBJSON serialization of a given JSON value

Synopsis

Declared in <nlohmann/json.hpp>
static
void
to_ubjson(
    basic_json const& j,
    detail::output_adapter<uint8_t> o,
    bool const use_size = false,
    bool const use_type = false);


Parameters

Name Description
j a class to store JSON values
create a UBJSON serialization of a given JSON value

Synopsis

Declared in <nlohmann/json.hpp>
static
void
to_ubjson(
    basic_json const& j,
    detail::output_adapter<char> o,
    bool const use_size = false,
    bool const use_type = false);


Parameters

Name Description
j a class to store JSON values
an internal type for a backed binary type

Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
template<typename BinaryType>
class byte_container_with_subtype
    : public BinaryType


Base Classes

Name Description
BinaryType

Types

Name
container_type
subtype_type

Member Functions

Name Description
byte_container_with_subtype [constructor]Default constructor
byte_container_with_subtype [constructor]Construct from container_type
byte_container_with_subtype [constructor]Construct from container_type
byte_container_with_subtype [constructor]
byte_container_with_subtype [constructor]
clear_subtype clears the binary subtype
has_subtype return whether the value has a subtype
set_subtype sets the binary subtype
subtype return the binary subtype
operator== Equality operator
operator!= Inequality operator

Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
using container_type = BinaryType;


Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
using subtype_type = uint64_t;


Default constructor

Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
byte_container_with_subtype() noexcept(noexcept(container_type()));


Construct from container_type

Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
byte_container_with_subtype(container_type const& b) noexcept(noexcept(container_type(b)));


Parameters

Name Description
b The object to copy construct from
Construct from container_type

Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
byte_container_with_subtype(container_type&& b) noexcept(noexcept(container_type(std::move(b))));


Parameters

Name Description
b The object to move construct from

Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
byte_container_with_subtype(
    container_type const& b,
    subtype_type subtype_) noexcept(noexcept(container_type(b)));


Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
byte_container_with_subtype(
    container_type&& b,
    subtype_type subtype_) noexcept(noexcept(container_type(std::move(b))));


clears the binary subtype

Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
void
clear_subtype() noexcept;


return whether the value has a subtype

Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
constexpr
bool
has_subtype() const noexcept;


sets the binary subtype

Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
void
set_subtype(subtype_type subtype_) noexcept;


return the binary subtype

Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
constexpr
subtype_type
subtype() const noexcept;


Equality operator

Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
bool
operator==(byte_container_with_subtype const& rhs) const;


Return Value

true if the objects are equal, false otherwise

Parameters

Name Description
rhs The right operand
Inequality operator

Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
bool
operator!=(byte_container_with_subtype const& rhs) const;


Return Value

true if the objects are not equal, false otherwise

Parameters

Name Description
rhs The right operand

Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
template<>
class byte_container_with_subtype<vector<unsigned char>>
    : public vector<unsigned char>


Base Classes

Name Description
vector<unsigned char>

Types

Name
container_type
subtype_type

Member Functions

Name Description
byte_container_with_subtype [constructor]Constructors
clear_subtype
has_subtype
set_subtype
subtype
operator== Equality operator
operator!= Inequality operator

Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
using container_type = vector<unsigned char>;


Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
using subtype_type = uint64_t;


Constructors

Synopses

Declared in <nlohmann/byte_container_with_subtype.hpp>
Default constructor
byte_container_with_subtype() noexcept(noexcept(container_type()));


» more... Construct from container_type
byte_container_with_subtype(container_type const& b) noexcept(noexcept(container_type(b)));


» more... Construct from container_type
byte_container_with_subtype(container_type&& b) noexcept(noexcept(container_type(std::move(b))));


» more...
byte_container_with_subtype(
    container_type const& b,
    subtype_type subtype_) noexcept(noexcept(container_type(b)));


» more...
byte_container_with_subtype(
    container_type&& b,
    subtype_type subtype_) noexcept(noexcept(container_type(std::move(b))));


» more...
Default constructor

Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
byte_container_with_subtype() noexcept(noexcept(container_type()));


Construct from container_type

Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
byte_container_with_subtype(container_type const& b) noexcept(noexcept(container_type(b)));


Parameters

Name Description
b The object to copy construct from
Construct from container_type

Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
byte_container_with_subtype(container_type&& b) noexcept(noexcept(container_type(std::move(b))));


Parameters

Name Description
b The object to move construct from

Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
byte_container_with_subtype(
    container_type const& b,
    subtype_type subtype_) noexcept(noexcept(container_type(b)));


Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
byte_container_with_subtype(
    container_type&& b,
    subtype_type subtype_) noexcept(noexcept(container_type(std::move(b))));


Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
void
clear_subtype() noexcept;


Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
constexpr
bool
has_subtype() const noexcept;


Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
void
set_subtype(subtype_type subtype_) noexcept;


Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
constexpr
subtype_type
subtype() const noexcept;


Equality operator

Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
bool
operator==(byte_container_with_subtype<vector<unsigned char>> const& rhs) const;


Return Value

true if the objects are equal, false otherwise

Parameters

Name Description
rhs The right operand
Inequality operator

Synopsis

Declared in <nlohmann/byte_container_with_subtype.hpp>
bool
operator!=(byte_container_with_subtype<vector<unsigned char>> const& rhs) const;


Return Value

true if the objects are not equal, false otherwise

Parameters

Name Description
rhs The right operand

Synopsis

Declared in <nlohmann/json.hpp>
template<typename>
class json_pointer;


JSON Pointer defines a string syntax for identifying a specific value within a JSON document

Synopsis

Declared in <nlohmann/json_fwd.hpp>
template<typename RefStringType>
class json_pointer;


Friends

|===
Name Description
operator/ create a new JSON pointer by appending the array-index-token at the end of the JSON pointer
operator/ create a new JSON pointer by appending the unescaped token at the end of the JSON pointer
operator/ create a new JSON pointer by appending the right JSON pointer at the end of the left JSON pointer
operator<< write string representation of the JSON pointer to stream
json_pointer JSON Pointer defines a string syntax for identifying a specific value within a JSON document
basic_json a class to store JSON values
a minimal map-like container that preserves insertion order

Synopsis

Declared in <nlohmann/ordered_map.hpp>
template<
    class Key,
    class T,
    class IgnoredLess,
    class Allocator>
struct ordered_map
    : std::vector<std::pair<Key const, T>, Allocator>


Base Classes

Name Description
std::vector<std::pair<Key const, T>, Allocator>

Types

Name
Container
const_iterator
iterator
key_compare
key_type
mapped_type
require_input_iter
size_type
value_type

Member Functions

Name Description
ordered_map [constructor]Constructors
at
count
emplace
erase
find
insert
operator[] Subscript operators

Description

ordered_map: a minimal map-like container that preserves insertion order for use within nlohmann::basic_json<ordered_map>

Synopsis

Declared in <nlohmann/ordered_map.hpp>
using Container = std::vector<std::pair<Key const, T>, Allocator>;


Synopsis

Declared in <nlohmann/ordered_map.hpp>
using const_iterator = Container::const_iterator;


Synopsis

Declared in <nlohmann/ordered_map.hpp>
using iterator = Container::iterator;


Synopsis

Declared in <nlohmann/ordered_map.hpp>
using key_compare = std::equal_to;


Synopsis

Declared in <nlohmann/ordered_map.hpp>
using key_type = Key;


Synopsis

Declared in <nlohmann/ordered_map.hpp>
using mapped_type = T;


Synopsis

Declared in <nlohmann/ordered_map.hpp>
template<typename InputIt>
using require_input_iter = void;


Synopsis

Declared in <nlohmann/ordered_map.hpp>
using size_type = Container::size_type;


Synopsis

Declared in <nlohmann/ordered_map.hpp>
using value_type = Container::value_type;


Constructors

Synopses

Declared in <nlohmann/ordered_map.hpp>
Default constructor
ordered_map() noexcept(noexcept(Container()));


» more... Construct from Allocator
explicit
ordered_map(Allocator const& alloc) noexcept(noexcept(Container(alloc)));


» more...
ordered_map(
    std::initializer_list<value_type> init,
    Allocator const& alloc = Allocator());


» more...
template<class It>
ordered_map(
    It first,
    It last,
    Allocator const& alloc = Allocator());


» more...
Default constructor

Synopsis

Declared in <nlohmann/ordered_map.hpp>
ordered_map() noexcept(noexcept(Container()));


Construct from Allocator

Synopsis

Declared in <nlohmann/ordered_map.hpp>
explicit
ordered_map(Allocator const& alloc) noexcept(noexcept(Container(alloc)));


Parameters

Name Description
alloc The object to copy construct from

Synopsis

Declared in <nlohmann/ordered_map.hpp>
ordered_map(
    std::initializer_list<value_type> init,
    Allocator const& alloc = Allocator());


Synopsis

Declared in <nlohmann/ordered_map.hpp>
template<class It>
ordered_map(
    It first,
    It last,
    Allocator const& alloc = Allocator());


Synopses

Declared in <nlohmann/ordered_map.hpp>
T&
at(key_type const& key);


» more...
T const&
at(key_type const& key) const;


» more...
template<class KeyType>
requires detail::is_usable_as_key_type<key_compare, key_type, KeyType>::value
T const&
at(KeyType&& key) const;


» more...
template<class KeyType>
requires detail::is_usable_as_key_type<key_compare, key_type, KeyType>::value
T&
at(KeyType&& key);


» more...

Synopsis

Declared in <nlohmann/ordered_map.hpp>
T&
at(key_type const& key);


Synopsis

Declared in <nlohmann/ordered_map.hpp>
T const&
at(key_type const& key) const;


Synopsis

Declared in <nlohmann/ordered_map.hpp>
template<class KeyType>
requires detail::is_usable_as_key_type<key_compare, key_type, KeyType>::value
T const&
at(KeyType&& key) const;


Synopsis

Declared in <nlohmann/ordered_map.hpp>
template<class KeyType>
requires detail::is_usable_as_key_type<key_compare, key_type, KeyType>::value
T&
at(KeyType&& key);


Synopses

Declared in <nlohmann/ordered_map.hpp>
size_type
count(key_type const& key) const;


» more...
template<class KeyType>
requires detail::is_usable_as_key_type<key_compare, key_type, KeyType>::value
size_type
count(KeyType&& key) const;


» more...

Synopsis

Declared in <nlohmann/ordered_map.hpp>
size_type
count(key_type const& key) const;


Synopsis

Declared in <nlohmann/ordered_map.hpp>
template<class KeyType>
requires detail::is_usable_as_key_type<key_compare, key_type, KeyType>::value
size_type
count(KeyType&& key) const;


Synopses

Declared in <nlohmann/ordered_map.hpp>
std::pair<iterator, bool>
emplace(
    key_type const& key,
    T&& t);


» more...
template<class KeyType>
requires detail::is_usable_as_key_type<key_compare, key_type, KeyType>::value
std::pair<iterator, bool>
emplace(
    KeyType&& key,
    T&& t);


» more...

Synopsis

Declared in <nlohmann/ordered_map.hpp>
std::pair<iterator, bool>
emplace(
    key_type const& key,
    T&& t);


Synopsis

Declared in <nlohmann/ordered_map.hpp>
template<class KeyType>
requires detail::is_usable_as_key_type<key_compare, key_type, KeyType>::value
std::pair<iterator, bool>
emplace(
    KeyType&& key,
    T&& t);


Synopses

Declared in <nlohmann/ordered_map.hpp>
iterator
erase(iterator pos);


» more...
size_type
erase(key_type const& key);


» more...
template<class KeyType>
requires detail::is_usable_as_key_type<key_compare, key_type, KeyType>::value
size_type
erase(KeyType&& key);


» more...
iterator
erase(
    iterator first,
    iterator last);


» more...

Synopsis

Declared in <nlohmann/ordered_map.hpp>
iterator
erase(iterator pos);


Synopsis

Declared in <nlohmann/ordered_map.hpp>
size_type
erase(key_type const& key);


Synopsis

Declared in <nlohmann/ordered_map.hpp>
template<class KeyType>
requires detail::is_usable_as_key_type<key_compare, key_type, KeyType>::value
size_type
erase(KeyType&& key);


Synopsis

Declared in <nlohmann/ordered_map.hpp>
iterator
erase(
    iterator first,
    iterator last);


Synopses

Declared in <nlohmann/ordered_map.hpp>
iterator
find(key_type const& key);


» more...
const_iterator
find(key_type const& key) const;


» more...
template<class KeyType>
requires detail::is_usable_as_key_type<key_compare, key_type, KeyType>::value
iterator
find(KeyType&& key);


» more...

Synopsis

Declared in <nlohmann/ordered_map.hpp>
iterator
find(key_type const& key);


Synopsis

Declared in <nlohmann/ordered_map.hpp>
const_iterator
find(key_type const& key) const;


Synopsis

Declared in <nlohmann/ordered_map.hpp>
template<class KeyType>
requires detail::is_usable_as_key_type<key_compare, key_type, KeyType>::value
iterator
find(KeyType&& key);


Synopses

Declared in <nlohmann/ordered_map.hpp>
std::pair<iterator, bool>
insert(value_type const& value);


» more...
std::pair<iterator, bool>
insert(value_type&& value);


» more...
template<
    typename InputIt,
    typename = require_input_iter<InputIt>>
void
insert(
    InputIt first,
    InputIt last);


» more...

Synopsis

Declared in <nlohmann/ordered_map.hpp>
std::pair<iterator, bool>
insert(value_type const& value);


Synopsis

Declared in <nlohmann/ordered_map.hpp>
std::pair<iterator, bool>
insert(value_type&& value);


Synopsis

Declared in <nlohmann/ordered_map.hpp>
template<
    typename InputIt,
    typename = require_input_iter<InputIt>>
void
insert(
    InputIt first,
    InputIt last);


Subscript operators

Synopses

Declared in <nlohmann/ordered_map.hpp>
T&
operator[](key_type const& key);


» more...
T const&
operator[](key_type const& key) const;


» more...
template<class KeyType>
requires detail::is_usable_as_key_type<key_compare, key_type, KeyType>::value
T const&
operator[](KeyType&& key) const;


» more...
template<class KeyType>
requires detail::is_usable_as_key_type<key_compare, key_type, KeyType>::value
T&
operator[](KeyType&& key);


» more...

Synopsis

Declared in <nlohmann/ordered_map.hpp>
T&
operator[](key_type const& key);


Synopsis

Declared in <nlohmann/ordered_map.hpp>
T const&
operator[](key_type const& key) const;


Synopsis

Declared in <nlohmann/ordered_map.hpp>
template<class KeyType>
requires detail::is_usable_as_key_type<key_compare, key_type, KeyType>::value
T const&
operator[](KeyType&& key) const;


Synopsis

Declared in <nlohmann/ordered_map.hpp>
template<class KeyType>
requires detail::is_usable_as_key_type<key_compare, key_type, KeyType>::value
T&
operator[](KeyType&& key);


Synopses

Declared in <nlohmann/json.hpp>
[[__nonnull__]]
nlohmann::json
Unnamed function(
    char const* s,
    std::size_t n);


» more...
[[__nonnull__]]
nlohmann::json::json_pointer
Unnamed function(
    char const* s,
    std::size_t n);


» more...

Synopsis

Declared in <nlohmann/json.hpp>
[[__nonnull__]]
nlohmann::json
Unnamed function(
    char const* s,
    std::size_t n);


Synopsis

Declared in <nlohmann/json.hpp>
[[__nonnull__]]
nlohmann::json::json_pointer
Unnamed function(
    char const* s,
    std::size_t n);


Right shift operators

Synopses

Declared in <nlohmann/json.hpp>
deserialize from stream
std::istream&
operator>>(
    std::istream& i,
    basic_json& j);


» more... deserialize from stream
std::istream&
operator>>(
    std::istream& i,
    basic_json& j);


» more... serialize to stream
[[__deprecated__]]
std::ostream&
operator>>(
    basic_json const& j,
    std::ostream& o);


» more... serialize to stream
[[__deprecated__]]
std::ostream&
operator>>(
    basic_json const& j,
    std::ostream& o);


» more...
deserialize from stream

Synopsis

Declared in <nlohmann/json.hpp>
std::istream&
operator>>(
    std::istream& i,
    basic_json& j);


Parameters

Name Description
i The left operand
j The right operand
deserialize from stream

Synopsis

Declared in <nlohmann/json.hpp>
std::istream&
operator>>(
    std::istream& i,
    basic_json& j);


Parameters

Name Description
i The left operand
j The right operand
serialize to stream

Synopsis

Declared in <nlohmann/json.hpp>
[[__deprecated__]]
std::ostream&
operator>>(
    basic_json const& j,
    std::ostream& o);


Parameters

Name Description
j The left operand
o The right operand
serialize to stream

Synopsis

Declared in <nlohmann/json.hpp>
[[__deprecated__]]
std::ostream&
operator>>(
    basic_json const& j,
    std::ostream& o);


Parameters

Name Description
j The left operand
o The right operand
exchanges the values

Synopses

Declared in <nlohmann/json.hpp>
exchanges the values
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);


» more... exchanges the values
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);


» more...
exchanges the values

Synopsis

Declared in <nlohmann/json.hpp>
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);


Parameters

Name Description
left the type of an element reference
right the type of an element reference
exchanges the values

Synopsis

Declared in <nlohmann/json.hpp>
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);


Parameters

Name Description
left the type of an element reference
right the type of an element reference
user-defined to_string function for JSON values

Synopsis

Declared in <nlohmann/json.hpp>
template<
    template<
    typename,
    typename,
    typename...> typename ObjectType,
    template<
    typename,
    typename...> typename ArrayType,
    class StringType,
    class BooleanType,
    class NumberIntegerType,
    class NumberUnsignedType,
    class NumberFloatType,
    template<typename> typename AllocatorType,
    template<
    typename,
    typename = void> typename JSONSerializer,
    class BinaryType,
    class CustomBaseClass>
std::string
to_string(basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType, CustomBaseClass> const& j);


Parameters

Name Description
j a class to store JSON values
Left shift operators

Synopses

Declared in <nlohmann/json.hpp>
deserialize from stream
[[__deprecated__]]
std::istream&
operator<<(
    basic_json& j,
    std::istream& i);


» more... serialize to stream
std::ostream&
operator<<(
    std::ostream& o,
    basic_json const& j);


» more... write string representation of the JSON pointer to stream
std::ostream&
operator<<(
    std::ostream& o,
    json_pointer const& ptr);


» more... deserialize from stream
[[__deprecated__]]
std::istream&
operator<<(
    basic_json& j,
    std::istream& i);


» more... serialize to stream
std::ostream&
operator<<(
    std::ostream& o,
    basic_json const& j);


» more...
deserialize from stream

Synopsis

Declared in <nlohmann/json.hpp>
[[__deprecated__]]
std::istream&
operator<<(
    basic_json& j,
    std::istream& i);


Parameters

Name Description
j The left operand
i The right operand
serialize to stream

Synopsis

Declared in <nlohmann/json.hpp>
std::ostream&
operator<<(
    std::ostream& o,
    basic_json const& j);


Return Value

Reference to the current output stream

Parameters

Name Description
o An output stream
j The object to output
deserialize from stream

Synopsis

Declared in <nlohmann/json.hpp>
[[__deprecated__]]
std::istream&
operator<<(
    basic_json& j,
    std::istream& i);


Parameters

Name Description
j The left operand
i The right operand
serialize to stream

Synopsis

Declared in <nlohmann/json.hpp>
std::ostream&
operator<<(
    std::ostream& o,
    basic_json const& j);


Return Value

Reference to the current output stream

Parameters

Name Description
o An output stream
j The object to output

Synopsis

Declared in <nlohmann/json.hpp>
using nlohmann::literals::json_literals::;


Introduced Symbols

Name
nlohmann::

Synopsis

Declared in <nlohmann/json.hpp>
using nlohmann::literals::json_literals::;


Introduced Symbols

Name
nlohmann::

Created with MrDocs