Skip to content


template<typename KeyT>
iterator find(KeyT&& key);

template<typename KeyT>
const_iterator find(KeyT&& key) const

Finds an element in a JSON object with key equivalent to key. If the element is not found or the JSON value is not an object, end() is returned.

Template parameters

A type for an object key.


key (in)
key value of the element to search for.

Return value

Iterator to an element with key equivalent to key. If no such element is found or the JSON value is not an object, past-the-end (see end()) iterator 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 end() when executed on a JSON type that is not an object.



The example shows how find() is used.

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

using json = nlohmann::json;

int main()
    // create a JSON object
    json j_object = {{"one", 1}, {"two", 2}};

    // call find
    auto it_two = j_object.find("two");
    auto it_three = j_object.find("three");

    // print values
    std::cout << std::boolalpha;
    std::cout << "\"two\" was found: " << (it_two != j_object.end()) << '\n';
    std::cout << "value at key \"two\": " << *it_two << '\n';
    std::cout << "\"three\" was found: " << (it_three != j_object.end()) << '\n';


"two" was found: true
value at key "two": 2
"three" was found: false

Version history

  • Added in version 1.0.0.