// (1) bool contains(const typename object_t::key_type& key) const; // (2) template<typename KeyType> bool contains(KeyType&& key) const; // (3) bool contains(const json_pointer& ptr) const;
key
. If the element is not found or the JSON value is not an object, #!cpp false
is returned.KeyType
is comparable with #!cpp typename object_t::key_type
and #!cpp typename object_comparator_t::is_transparent
denotes a type.ptr
can be resolved in the current JSON value.KeyType
: A type for an object key other than json_pointer
that is comparable with string_t
using object_comparator_t
. This can also be a string view (C++17).
key
(in) : key value to check its existence.
ptr
(in) : JSON pointer to check its existence.
#!cpp true
if an element with specified key
exists. If no such element with such key is found or the JSON value is not an object, #!cpp false
is returned.#!cpp true
if the JSON pointer can be resolved to a stored value, #!cpp false
otherwise.Strong exception safety: if an exception occurs, the original value stays intact.
parse_error.106
if an array index begins with 0
.parse_error.109
if an array index was not a number.Logarithmic in the size of the JSON object.
#!cpp false
when executed on a JSON type that is not an object.!!! info “Postconditions”
If `#!cpp j.contains(x)` returns `#!c true` for a key or JSON pointer `x`, then it is safe to call `j[x]`.
??? example “Example: (1) check with key”
The example shows how `contains()` is used. ```cpp --8<-- "examples/contains__object_t_key_type.cpp" ``` Output: ```json --8<-- "examples/contains__object_t_key_type.output" ```
??? example “Example: (2) check with key using string_view”
The example shows how `contains()` is used. ```cpp --8<-- "examples/contains__keytype.c++17.cpp" ``` Output: ```json --8<-- "examples/contains__keytype.c++17.output" ```
??? example “Example: (3) check with JSON pointer”
The example shows how `contains()` is used. ```cpp --8<-- "examples/contains__json_pointer.cpp" ``` Output: ```json --8<-- "examples/contains__json_pointer.output" ```
KeyType
to support comparable types in version 3.11.0.