JSON for Modern C++  3.0
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>
reference nlohmann::basic_json::at ( const typename object_t::key_type &  key)
inline

Returns a reference to the element at with specified key key, with bounds checking.

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
std::out_of_rangeif the key key is is not stored in the object; that is, find(key) == end()
Complexity
Logarithmic in the size of the container.
Example
The example below shows how object elements can be read and written using at.
1 #include <json.hpp>
2 
3 using namespace nlohmann;
4 
5 int main()
6 {
7  // create JSON object
8  json object =
9  {
10  {"the good", "il buono"},
11  {"the bad", "il cativo"},
12  {"the ugly", "il brutto"}
13  };
14 
15  // output element with key "the ugly"
16  std::cout << object.at("the ugly") << '\n';
17 
18  // change element with key "the bad"
19  object.at("the bad") = "il cattivo";
20 
21  // output changed array
22  std::cout << object << '\n';
23 
24  // try to write at a nonexisting key
25  try
26  {
27  object.at("the fast") = "il rapido";
28  }
29  catch (std::out_of_range)
30  {
31  std::cout << "out of range" << '\n';
32  }
33 }
a class to store JSON values
Definition: json.hpp:130
reference at(size_type idx)
access specified array element with bounds checking
Definition: json.hpp:2412
namespace for Niels Lohmann
Definition: json.hpp:55
Output (play with this example online):
"il brutto"
{"the bad":"il cattivo","the good":"il buono","the ugly":"il brutto"}
out of range
The example code above can be translated with
g++ -std=c++11 -Isrc doc/examples/at__object_t_key_type.cpp -o at__object_t_key_type