nlohmann/json json中包含数组怎么反序列化
时间: 2024-09-06 08:07:30 浏览: 59
nlohmann / json
5星 · 资源好评率100%
在C++中使用`nlohmann/json`库反序列化JSON对象包含的数组,可以按照以下步骤进行:
1. 包含`nlohmann/json`库的头文件。
2. 创建一个`json`类型的变量,并使用`json::parse()`方法来解析JSON字符串。
3. 如果JSON字符串表示的是一个数组,可以直接使用这个`json`对象来访问数组。
下面是一个简单的例子,展示了如何反序列化包含数组的JSON字符串:
```cpp
#include <iostream>
#include <nlohmann/json.hpp>
int main() {
// 假设我们有一个JSON字符串,它表示一个包含多个元素的数组
std::string json_str = R"(
[
{"name": "John", "age": 30},
{"name": "Jane", "age": 25},
{"name": "Doe", "age": 35}
]
)";
// 使用nlohmann::json库解析JSON字符串
nlohmann::json json_obj = nlohmann::json::parse(json_str);
// 由于我们知道json_str表示的是一个数组,可以直接遍历数组
for (const auto& item : json_obj) {
// 访问每个元素的"name"和"age"字段
std::cout << "Name: " << item["name"] << ", Age: " << item["age"] << std::endl;
}
return 0;
}
```
在这个例子中,`json_obj`是一个`nlohmann::json`类型的对象,我们使用`parse`方法来解析`json_str`。然后通过范围基于的for循环遍历`json_obj`中的每个元素,每个元素本身也是一个`nlohmann::json`对象。我们可以直接访问其内部的"name"和"age"字段。
阅读全文