使用c++ jsoncpp库 如何实现遍历这个json串的data节点{ "type":0, "code":"0", "msg":"SUCCESS", "data":{ "0":"优", "1":"良", "2":"中", "3":"差", "4":"未知" } }
时间: 2023-07-24 07:13:58 浏览: 108
jsoncpp:一个用于与JSON交互的C ++库
你可以使用jsoncpp库来遍历这个JSON串中的"data"节点。以下是一个示例代码:
```cpp
#include <iostream>
#include <json/json.h>
void traverseJsonData(const Json::Value& jsonData) {
for (const auto& key : jsonData.getMemberNames()) {
std::cout << key << ": " << jsonData[key].asString() << std::endl;
}
}
int main() {
std::string jsonStr = R"({
"type": 0,
"code": "0",
"msg": "SUCCESS",
"data": {
"0": "优",
"1": "良",
"2": "中",
"3": "差",
"4": "未知"
}
})";
Json::Value root;
Json::Reader reader;
bool parsingSuccessful = reader.parse(jsonStr, root);
if (!parsingSuccessful) {
std::cout << "Failed to parse JSON" << std::endl;
return 1;
}
Json::Value data = root["data"];
traverseJsonData(data);
return 0;
}
```
在这段代码中,我们定义了一个名为`traverseJsonData`的函数来遍历"data"节点。它使用`jsonData.getMemberNames()`获取"data"节点中所有成员的名称,并通过`jsonData[key].asString()`获取对应成员的值。
在主函数中,我们解析了JSON串并将"data"节点赋值给变量`data`。然后,我们调用`traverseJsonData`函数来遍历并打印"data"节点的所有成员及其对应的值。
输出结果将会是:
```
0: 优
1: 良
2: 中
3: 差
4: 未知
```
这样就成功遍历了"data"节点中的所有成员,并将其打印出来。你可以根据需要对遍历过程进行进一步的处理。
阅读全文