Skip to content


template<typename KeyT>
bool contains(KeyT && key) const;

Check whether an element exists in a JSON object with key equivalent to key. If the element is not found or the JSON value is not an object, false is returned.

Template parameters

A type for an object key other than basic_json::json_pointer.


key (in)
key value to check its existence.

Return value

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, false is returned.

Exception safety

Strong exception safety: if an exception occurs, the original value stays intact.


Logarithmic in the size of the JSON object.


This method always returns false when executed on a JSON type that is not an object.



The example shows how contains() is used.

#include <iostream>
#include <nlohmann/json.hpp>

using json = nlohmann::json;

int main()
    // create some JSON values
    json j_object = R"( {"key": "value"} )"_json;
    json j_array = R"( [1, 2, 3] )"_json;

    // call contains
    std::cout << std::boolalpha <<
              "j_object contains 'key': " << j_object.contains("key") << '\n' <<
              "j_object contains 'another': " << j_object.contains("another") << '\n' <<
              "j_array contains 'key': " << j_array.contains("key") << std::endl;


j_object contains 'key': true
j_object contains 'another': false
j_array contains 'key': false

Version history

  • Added in version 3.6.0.