JSON for Modern C++  2.0.3

§ at() [2/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>
const_reference nlohmann::basic_json::at ( size_type  idx) const
inline

Returns a const reference to the element at specified location idx, with bounds checking.

Parameters
[in]idxindex of the element to access
Returns
const reference to the element at index idx
Exceptions
std::domain_errorif the JSON value is not an array; example: "cannot use at() with string"
std::out_of_rangeif the index idx is out of range of the array; that is, idx >= size(); example: "array index 7 is out of range"
Complexity
Constant.
Example
The example below shows how array elements can be read using at().
1 #include <json.hpp>
2 
3 using json = nlohmann::json;
4 
5 int main()
6 {
7  // create JSON array
8  json array = {"first", "2nd", "third", "fourth"};
9 
10  // output element at index 2 (third element)
11  std::cout << array.at(2) << '\n';
12 
13  // try to read beyond the array limit
14  try
15  {
16  std::cout << array.at(5) << '\n';
17  }
18  catch (std::out_of_range)
19  {
20  std::cout << "out of range" << '\n';
21  }
22 }
basic_json<> json
default JSON class
Definition: json.hpp:10122
Output (play with this example online):
"third"
out of range
The example code above can be translated with
g++ -std=c++11 -Isrc doc/examples/at__size_type_const.cpp -o at__size_type_const 
Since
version 1.0.0

Definition at line 3190 of file json.hpp.