JSON for Modern C++  3.0.1

◆ iterator_wrapper() [1/2]

template<template< typename, typename, typename... > class ObjectType = std::map, template< typename, typename... > class ArrayType = std::vector, class StringType = std::string, class BooleanType = bool, class NumberIntegerType = std::int64_t, class NumberUnsignedType = std::uint64_t, class NumberFloatType = double, template< typename > class AllocatorType = std::allocator, template< typename, typename=void > class JSONSerializer = adl_serializer>
static iteration_proxy<iterator> nlohmann::basic_json::iterator_wrapper ( reference  ref)
inlinestatic

This function allows to access iterator::key() and iterator::value() during range-based for loops. In these loops, a reference to the JSON values is returned, so there is no access to the underlying iterator.

For loop without iterator_wrapper:

for (auto it = j_object.begin(); it != j_object.end(); ++it)
{
std::cout << "key: " << it.key() << ", value:" << it.value() << '\n';
}

Range-based for loop without iterator proxy:

for (auto it : j_object)
{
// "it" is of type json::reference and has no key() member
std::cout << "value: " << it << '\n';
}

Range-based for loop with iterator proxy:

for (auto it : json::iterator_wrapper(j_object))
{
std::cout << "key: " << it.key() << ", value:" << it.value() << '\n';
}
Note
When iterating over an array, key() will return the index of the element as string (see example).
Parameters
[in]refreference to a JSON value
Returns
iteration proxy object wrapping ref with an interface to use in range-based for loops
Example The following code shows how the wrapper is used iterator_wrapper.cpp Output (play with this example iterator_wrapper.link): iterator_wrapper.output The example code above can be translated withg++ -std=c++11 -Isrc doc/examples/iterator_wrapper.cpp -o iterator_wrapper
Exception safety Strong guarantee: if an exception is thrown, there are no
changes in the JSON value.
Complexity Constant.
Note
The name of this function is not yet final and may change in the future.

Definition at line 11380 of file json.hpp.