json解析数组 nlohmann_从零开始学JSON(修订版)
时间: 2023-11-18 07:04:19 浏览: 33
首先,你需要包含 nlohmann/json 头文件,以及使用 nlohmann 命名空间,代码示例如下:
```
#include <nlohmann/json.hpp>
using json = nlohmann::json;
```
然后,你需要将 JSON 字符串解析成 json 对象,代码示例如下:
```
json j = json::parse("[1, 2, 3, 4, 5]");
```
这里我们将一个包含有 5 个元素的 JSON 数组解析成了一个 json 对象。接下来,你可以通过迭代器遍历这个数组,示例如下:
```
for (json::iterator it = j.begin(); it != j.end(); ++it) {
std::cout << *it << '\n';
}
```
这里我们使用了 json 对象的 begin() 和 end() 方法获取迭代器,然后通过 *it 访问数组元素。输出结果如下:
```
1
2
3
4
5
```
当然,你也可以使用范围 for 循环来遍历数组,示例如下:
```
for (auto& element : j) {
std::cout << element << '\n';
}
```
输出结果与之前相同。需要注意的是,在这里我们使用了 auto& 来声明元素引用,因为 json 对象的元素类型可能是值类型,也可能是对象或数组类型。
如果你要访问特定下标的元素,可以使用下标运算符,示例如下:
```
std::cout << j[2] << '\n'; // 输出 3
```
如果你要向数组添加元素,可以使用 push_back() 方法,示例如下:
```
j.push_back(6);
std::cout << j << '\n'; // 输出 [1, 2, 3, 4, 5, 6]
```
这里我们向数组添加了一个整数元素 6,然后使用 cout 输出了 json 对象的字符串表示形式。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)