如何遍历和访问 nlohmann::json 中的数据结构?
时间: 2024-10-25 09:18:29 浏览: 520
nlohmann::json 是 C++ 中一个流行的 JSON 库,它提供了一种简单的方式来处理 JSON 数据。遍历和访问 `nlohmann::json` 中的数据结构通常通过成员函数和迭代器完成。以下是基本步骤:
1. 创建一个 `json` 对象:
```cpp
nlohmann::json j = {{"key", "value"}, {"array", {1, 2, 3}}};
```
2. 访问键值对(如字典或对象):
- 使用 `.at()` 或 `[ ]` 来获取特定键的值(如果存在),抛出异常如果没有:
```cpp
std::string str = j["key"];
```
- 如果不确定键是否存在,可以先检查 `j.count("key")`:
```cpp
if (j.contains("key")) {
str = j["key"];
}
```
3. 遍历对象的所有键值对:
```cpp
for (const auto& pair : j.items()) {
std::cout << pair.key() << ": " << pair.value() << "\n";
}
```
4. 访问数组(列表)元素:
- 直接下标索引访问元素:
```cpp
int firstElement = j["array"][0];
```
- 使用范围-for 循环遍历整个数组:
```cpp
for (const auto& elem : j["array"]) {
std::cout << elem << ", ";
}
```
5. 更深层次的数据结构,比如嵌套的对象和数组,递归处理即可。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.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)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)