JSON for Modern C++  1.0.0-rc1
template<template< typename U, typename V, typename...Args > class ObjectType = std::map, template< typename U, typename...Args > class ArrayType = std::vector, class StringType = std::string, class BooleanType = bool, class NumberIntegerType = int64_t, class NumberFloatType = double, template< typename U > class AllocatorType = std::allocator>
template<typename T , std::size_t n>
reference nlohmann::basic_json::operator[] ( const T(&)  key[n])
inline

Returns a reference to the element at with specified key key.

Note
If key is not found in the object, then it is silently added to the object and filled with a null value to make key a valid reference. In case the value was null before, it is converted to an object.
This function is required for compatibility reasons with Clang.
Parameters
[in]keykey of the element to access
Returns
reference to the element at key key
Exceptions
std::domain_errorif JSON is not an object or null
Complexity
Logarithmic in the size of the container.
Example
The example below shows how object elements can be read and written using the [] operator.
1 #include <json.hpp>
2 
3 using namespace nlohmann;
4 
5 int main()
6 {
7  // create a JSON object
8  json object =
9  {
10  {"one", 1}, {"two", 2}, {"three", 2.9}
11  };
12 
13  // output element with key "two"
14  std::cout << object["two"] << "\n\n";
15 
16  // change element with key "three"
17  object["three"] = 3;
18 
19  // output changed array
20  std::cout << std::setw(4) << object << "\n\n";
21 
22  // mention nonexisting key
23  object["four"];
24 
25  // write to nonexisting key
26  object["five"]["really"]["nested"] = true;
27 
28  // output changed object
29  std::cout << std::setw(4) << object << '\n';
30 }
a class to store JSON values
Definition: json.hpp:187
namespace for Niels Lohmann
Definition: json.hpp:78
Output (play with this example online):
2

{
    "one": 1,
    "three": 3,
    "two": 2
}

{
    "five": {
        "really": {
            "nested": true
        }
    },
    "four": null,
    "one": 1,
    "three": 3,
    "two": 2
}
The example code above can be translated with
g++ -std=c++11 -Isrc doc/examples/operatorarray__key_type.cpp -o operatorarray__key_type 
See also
at(const typename object_t::key_type&) for access by reference with range checking
value() for access by value with a default value
Since
version 1.0

Definition at line 2830 of file json.hpp.