Returns a reference to the element at specified location idx, with bounds checking.
- Parameters
-
[in] | idx | index of the element to access |
- Returns
- reference to the element at index idx
- Exceptions
-
type_error.304 | if the JSON value is not an array; in this case, calling at with an index makes no sense. See example below. |
out_of_range.401 | if the index idx is out of range of the array; that is, idx >= size() . See example below. |
- Exception safety
- Strong guarantee: if an exception is thrown, there are no changes in the JSON value.
- Complexity
- Constant.
- Since
- version 1.0.0
- Example
- The example below shows how array elements can be read and written using
at()
. It also demonstrates the different exceptions that can be thrown.
2 #include <nlohmann/json.hpp>
9 json array = {
"first",
"2nd",
"third",
"fourth"};
12 std::cout <<
array.
at(2) <<
'\n';
18 std::cout <<
array <<
'\n';
25 json str =
"I am a string";
26 str.at(0) =
"Another string";
30 std::cout << e.what() <<
'\n';
41 std::cout << e.what() <<
'\n';
Output (play with this example online): "third"
["first","second","third","fourth"]
[json.exception.type_error.304] cannot use at() with string
[json.exception.out_of_range.401] array index 5 is out of range
The example code above can be translated withg++ -std=c++11 -Isingle_include doc/examples/at__size_type.cpp -o at__size_type
Definition at line 17519 of file json.hpp.