Json::Reader 如何解析char*中存放的json数据
时间: 2024-02-29 20:51:09 浏览: 124
解析Json数据
可以使用JsonCpp库中的Json::Reader类来解析char*中存放的json数据。可以按照以下步骤进行操作:
1. 创建Json::Reader对象。
2. 调用Json::Reader对象的parse函数,将char*中的json数据作为参数传入。
3. 判断解析是否成功,可以通过Json::Reader对象的parse函数的返回值来判断。如果解析成功,返回值为true;如果解析失败,返回值为false。
4. 如果解析成功,可以通过Json::Value对象来获取解析结果,Json::Value对象可以通过Json::Reader对象的getJsonRootValue函数来获取。
以下是一个示例代码:
```c++
#include "json/json.h"
#include <iostream>
using namespace std;
int main() {
char* json_str = "{\"name\": \"Tom\", \"age\": 18}";
Json::Reader reader;
Json::Value root;
bool parsing_successful = reader.parse(json_str, root);
if (!parsing_successful) {
cerr << "Failed to parse json string!" << endl;
return 1;
}
string name = root["name"].asString();
int age = root["age"].asInt();
cout << "Name: " << name << endl;
cout << "Age: " << age << endl;
return 0;
}
```
在上面的示例中,我们将一个json字符串解析为一个Json::Value对象,并获取了其中的"name"和"age"字段的值。注意,在实际使用中,我们需要对解析结果进行适当的校验,以避免程序崩溃或出现不可预期的错误。
阅读全文