rapidjson 读取 json 文件
时间: 2023-08-23 13:17:14 浏览: 113
引用\[1\]:JSON文件如下: { "errorCode":0, "reason":"OK", "result": {"userId":10086,"name":"中国移动"}, "numbers":\[110,120,119,911\] } 。
问题:rapidjson 读取 json 文件
回答: 使用rapidjson库可以很方便地读取JSON文件。首先,你需要包含rapidjson的头文件,并创建一个rapidjson的Document对象。然后,你可以使用rapidjson的Parse函数将JSON文件内容解析到Document对象中。接下来,你可以通过Document对象的成员函数和操作符来访问JSON文件中的数据。
以下是一个使用rapidjson读取JSON文件的示例代码:
```cpp
#include <iostream>
#include <fstream>
#include "rapidjson/document.h"
int main() {
// 打开JSON文件
std::ifstream file("example.json");
if (!file.is_open()) {
std::cout << "Failed to open JSON file." << std::endl;
return 0;
}
// 读取JSON文件内容到字符串
std::string jsonString((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());
// 创建rapidjson的Document对象
rapidjson::Document document;
// 解析JSON字符串到Document对象
document.Parse(jsonString.c_str());
// 检查解析是否成功
if (document.HasParseError()) {
std::cout << "Failed to parse JSON file." << std::endl;
return 0;
}
// 读取JSON文件中的数据
int errorCode = document\["errorCode"\].GetInt();
std::string reason = document\["reason"\].GetString();
int userId = document\["result"\]\["userId"\].GetInt();
std::string name = document\["result"\]\["name"\].GetString();
const rapidjson::Value& numbers = document\["numbers"\];
// 输出读取到的数据
std::cout << "errorCode: " << errorCode << std::endl;
std::cout << "reason: " << reason << std::endl;
std::cout << "userId: " << userId << std::endl;
std::cout << "name: " << name << std::endl;
std::cout << "numbers: ";
for (rapidjson::SizeType i = 0; i < numbers.Size(); i++) {
std::cout << numbers\[i\].GetInt() << " ";
}
std::cout << std::endl;
return 0;
}
```
在上面的示例代码中,我们首先打开JSON文件并将其内容读取到字符串中。然后,我们创建了一个rapidjson的Document对象,并使用Parse函数将JSON字符串解析到Document对象中。接下来,我们可以通过Document对象的成员函数和操作符来访问JSON文件中的数据。最后,我们输出了读取到的数据。
请注意,上述示例代码中的"example.json"是JSON文件的路径,请根据实际情况修改为你要读取的JSON文件的路径。
#### 引用[.reference_title]
- *1* [C++学习笔记-利用rapidJSON读取JSON数据](https://blog.csdn.net/qq78442761/article/details/84022613)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文