JSON for Modern C++  2.0.3

§ at() [3/6]

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 = std::int64_t, class NumberUnsignedType = std::uint64_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 the JSON value is not an object; example: "cannot use at() with boolean"
std::out_of_rangeif the key key is is not stored in the object; that is, find(key) == end(); example: "key "the fast" not found"
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 json = nlohmann::json;
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& e)
30  {
31  std::cout << "out of range: " << e.what() << '\n';
32  }
33 }
basic_json<> json
default JSON class
Definition: json.hpp:10122
Output (play with this example online):
"il brutto"
{"the bad":"il cattivo","the good":"il buono","the ugly":"il brutto"}
out of range: key 'the fast' not found
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 
See also
operator[](const typename object_t::key_type&) for unchecked access by reference
value() for access by value with a default value
Since
version 1.0.0

Definition at line 3237 of file json.hpp.