json文件更新数据c++
时间: 2023-08-30 09:08:20 浏览: 204
要更新一个 JSON 文件的数据,你可以使用 C++ 中的 JSON 库来实现。以下是一个使用 RapidJSON 库的示例代码,来更新 JSON 文件中的数据:
```cpp
#include <iostream>
#include <fstream>
#include <sstream>
#include "rapidjson/document.h"
#include "rapidjson/writer.h"
#include "rapidjson/stringbuffer.h"
using namespace rapidjson;
int main() {
// 读取 JSON 文件
std::ifstream ifs("data.json");
std::stringstream buffer;
buffer << ifs.rdbuf();
std::string jsonStr = buffer.str();
ifs.close();
// 解析 JSON 字符串
Document document;
document.Parse(jsonStr.c_str());
// 更新数据
if (document.HasMember("name")) {
document["name"] = "John Doe";
}
if (document.HasMember("age")) {
document["age"] = 25;
}
// 将更新后的 JSON 数据转换回字符串
StringBuffer buffer2;
Writer<StringBuffer> writer(buffer2);
document.Accept(writer);
std::string updatedJsonStr = buffer2.GetString();
// 写入更新后的 JSON 数据到文件
std::ofstream ofs("data.json");
ofs << updatedJsonStr;
ofs.close();
std::cout << "JSON 文件已更新!" << std::endl;
return 0;
}
```
在上面的示例中,我们使用 RapidJSON 库读取了名为 "data.json" 的 JSON 文件。然后,我们通过解析 JSON 字符串将其转换为 `Document` 对象。接下来,我们更新了 `Document` 对象中的数据,并将其转换回 JSON 字符串。最后,我们将更新后的 JSON 字符串写入回 "data.json" 文件中。
请确保你已经安装了 RapidJSON 库,并在编译时链接该库。你可以从 RapidJSON 的官方网站(https://rapidjson.org/)下载和安装该库。
阅读全文