mirror of
https://github.com/nlohmann/json.git
synced 2026-07-10 12:35:09 +00:00
74 lines
1.8 KiB
Markdown
74 lines
1.8 KiB
Markdown
# nlohmann::basic_json::array_t
|
|
|
|
```
|
|
using array_t = ArrayType<basic_json, AllocatorType<basic_json>>;
|
|
```
|
|
|
|
The type used to store JSON arrays.
|
|
|
|
[RFC 8259](https://tools.ietf.org/html/rfc8259) describes JSON arrays as follows:
|
|
|
|
> An array is an ordered sequence of zero or more values.
|
|
|
|
To store objects in C++, a type is defined by the template parameters explained below.
|
|
|
|
## Template parameters
|
|
|
|
`ArrayType` : container type to store arrays (e.g., `std::vector` or `std::list`)
|
|
|
|
`AllocatorType` : the allocator to use for objects (e.g., `std::allocator`)
|
|
|
|
## Notes
|
|
|
|
#### Default type
|
|
|
|
With the default values for `ArrayType` (`std::vector`) and `AllocatorType` (`std::allocator`), the default value for `array_t` is:
|
|
|
|
```
|
|
std::vector<
|
|
basic_json, // value_type
|
|
std::allocator<basic_json> // allocator_type
|
|
>
|
|
```
|
|
|
|
#### Limits
|
|
|
|
[RFC 8259](https://tools.ietf.org/html/rfc8259) specifies:
|
|
|
|
> An implementation may set limits on the maximum depth of nesting.
|
|
|
|
In this class, the array's limit of nesting is not explicitly constrained. However, a maximum depth of nesting may be introduced by the compiler or runtime environment. A theoretical limit can be queried by calling the [`max_size`](https://json.nlohmann.me/api/basic_json/max_size/index.md) function of a JSON array.
|
|
|
|
#### Storage
|
|
|
|
Arrays are stored as pointers in a `basic_json` type. That is, for any access to array values, a pointer of type `array_t*` must be dereferenced.
|
|
|
|
## Examples
|
|
|
|
Example
|
|
|
|
The following code shows that `array_t` is by default, a typedef to `std::vector<nlohmann::json>`.
|
|
|
|
```
|
|
#include <iostream>
|
|
#include <iomanip>
|
|
#include <nlohmann/json.hpp>
|
|
|
|
using json = nlohmann::json;
|
|
|
|
int main()
|
|
{
|
|
std::cout << std::boolalpha << std::is_same<std::vector<json>, json::array_t>::value << std::endl;
|
|
}
|
|
```
|
|
|
|
Output:
|
|
|
|
```
|
|
true
|
|
```
|
|
|
|
## Version history
|
|
|
|
- Added in version 1.0.0.
|