JSON for Modern C++ 2.1.1
Loading...
Searching...
No Matches

◆ at() [5/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, template< typename T, typename SFINAE=void > class JSONSerializer = adl_serializer>
reference nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer >::at ( size_type  idx)
inline

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

Parameters
[in]idxindex of the element to access
Returns
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\n Constant.
Example\n The example below shows how array elements can be read and
written using at().
1#include <json.hpp>
2
3using json = nlohmann::json;
4
5int 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 // change element at index 1 (second element) to "second"
14 array.at(1) = "second";
15
16 // output changed array
17 std::cout << array << '\n';
18
19 // try to write beyond the array limit
20 try
21 {
22 array.at(5) = "sixth";
23 }
24 catch (std::out_of_range& e)
25 {
26 std::cout << "out of range: " << e.what() << '\n';
27 }
28}
static basic_json array(std::initializer_list< basic_json > init=std::initializer_list< basic_json >())
explicitly create an array from an initializer list
Definition json.hpp:2165
reference at(size_type idx)
access specified array element with bounds checking
Definition json.hpp:3531
a class to store JSON values
Definition json.hpp:1040
basic_json<> json
default JSON class
Definition json.hpp:12369

Output (play with this example online):
"third"
["first","second","third","fourth"]
out of range: array index 5 is out of range

The example code above can be translated with
g++ -std=c++11 -Isrc doc/examples/at__size_type.cpp -o at__size_type 
Since
version 1.0.0

Definition at line 3531 of file json.hpp.