c++ jsoncpp库 解析这个json串{ "type":0, "code":"0", "msg":"SUCCESS", "data":{ "0":"优", "1":"良", "2":"中", "3":"差", "4":"未知" } }
时间: 2023-07-24 14:13:58 浏览: 86
你可以使用jsoncpp库来解析这个JSON串。首先,你需要安装jsoncpp库并将其包含到你的代码中。
以下是使用jsoncpp库解析这个JSON串的示例代码:
```cpp
#include <iostream>
#include <json/json.h>
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;
}
int type = root["type"].asInt();
std::string code = root["code"].asString();
std::string msg = root["msg"].asString();
Json::Value data = root["data"];
std::string node0 = data["0"].asString();
std::string node1 = data["1"].asString();
std::string node2 = data["2"].asString();
std::string node3 = data["3"].asString();
std::string node4 = data["4"].asString();
std::cout << "type: " << type << std::endl;
std::cout << "code: " << code << std::endl;
std::cout << "msg: " << msg << std::endl;
std::cout << "node 0: " << node0 << std::endl;
std::cout << "node 1: " << node1 << std::endl;
std::cout << "node 2: " << node2 << std::endl;
std::cout << "node 3: " << node3 << std::endl;
std::cout << "node 4: " << node4 << std::endl;
return 0;
}
```
这段代码首先定义了一个包含你提供的JSON串的字符串变量`jsonStr`。然后,它使用`Json::Value`和`Json::Reader`来解析JSON串。如果解析成功,你就可以通过`root`对象来访问不同的键和值。
在示例代码中,我们提取了"type"、"code"、"msg"和"data"的值,并将"data"中的节点值存储在相应的变量中。最后,将提取的值打印到控制台上。
注意:在编译代码之前,请确保已正确安装并链接jsoncpp库。
阅读全文