libjsoncpp使用例子
时间: 2023-10-11 11:04:26 浏览: 113
以下是一个简单的libjsoncpp使用例子,通过该例子可以看到如何解析JSON字符串和如何构造JSON对象。
```c++
#include <iostream>
#include <json/json.h>
using namespace std;
int main()
{
// 构造 JSON 对象
Json::Value root;
root["name"] = "Tom";
root["age"] = 18;
root["married"] = false;
root["hobbies"].append("swimming");
root["hobbies"].append("reading");
// 将 JSON 对象转换为字符串
string jsonStr = root.toStyledString();
cout << jsonStr << endl;
// 解析 JSON 字符串
Json::CharReaderBuilder builder;
Json::CharReader* reader = builder.newCharReader();
Json::Value root2;
string err;
bool ok = reader->parse(jsonStr.c_str(), jsonStr.c_str() + jsonStr.size(), &root2, &err);
delete reader;
if (!ok)
{
cout << "parse error: " << err << endl;
return -1;
}
// 从 JSON 对象中获取值
string name = root2["name"].asString();
int age = root2["age"].asInt();
bool married = root2["married"].asBool();
string hobby1 = root2["hobbies"][0].asString();
string hobby2 = root2["hobbies"][1].asString();
// 输出结果
cout << "name: " << name << endl;
cout << "age: " << age << endl;
cout << "married: " << married << endl;
cout << "hobby1: " << hobby1 << endl;
cout << "hobby2: " << hobby2 << endl;
return 0;
}
```
输出结果:
```text
{
"name" : "Tom",
"age" : 18,
"married" : false,
"hobbies" : [
"swimming",
"reading"
]
}
name: Tom
age: 18
married: 0
hobby1: swimming
hobby2: reading
```
这个例子中,我们首先构造了一个 JSON 对象,并将其转换为字符串,然后再解析这个字符串,从中获取键值对的值。需要注意的是,libjsoncpp中的bool类型使用0表示false,1表示true。
阅读全文