Skip to content

basic_json::find

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

KeyT
A type for an object key.

Parameters

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.

Complexity

Logarithmic in the size of the JSON object.

Notes

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

Example

Example

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';
}

Output:

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

Version history

  • Added in version 1.0.0.