|
◆ at() [1/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, class BinaryType = std::vector<std::uint8_t>>
reference nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType >::at |
( |
size_type |
idx | ) |
|
|
inline |
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'; 15 array. at(1) = "second"; 18 std::cout << array << '\n'; 25 json str = "I am a string"; 26 str.at(0) = "Another string"; 30 std::cout << e.what() << '\n'; 37 array.at(5) = "sixth"; 41 std::cout << e.what() << '\n'; detail::out_of_range out_of_range exception indicating access out of the defined range
detail::type_error type_error exception indicating executing a member function with a wrong type
basic_json<> json default JSON class
reference at(size_type idx) access specified array element with bounds checking
static basic_json array(initializer_list_t init={}) explicitly create an array from an initializer list
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 19793 of file json.hpp.
|