我有一个包含以下内容的配置文件:
{
"ip": "127.0.0.1",
"heartbeat": "1",
"ssl": "False",
"log_severity": "debug",
"port":"9999"
}
我已使用 JsonCpp 读取上述配置文件的内容。读取Config File内容正常,但是写入Config File内容失败。我有以下代码:
#include <json/json.h>
#include <json/writer.h>
#include <iostream>
#include <fstream>
int main()
{
Json::Value root; // will contains the root value after parsing.
Json::Reader reader;
Json::StyledStreamWriter writer;
std::ifstream test("C://SomeFolder//lpa.config");
bool parsingSuccessful = reader.parse( test, root );
if ( !parsingSuccessful )
{
// report to the user the failure and their locations in the document.
std::cout << "Failed to parse configuration: "<< reader.getFormattedErrorMessages();
}
std::cout << root["heartbeat"] << std::endl;
std::cout << root << std::endl;
root["heartbeat"] = "60";
std::ofstream test1("C://SomeFolder//lpa.config");
writer.write(test1,root);
std::cout << root << std::endl;
return 0;
}
该代码在控制台中打印出正确的输出,但是当该代码执行时配置文件为空。如何使此代码工作?
最佳答案
您需要做的就是显式关闭输入流
test.close(); // ADD THIS LINE
std::ofstream test1("C://LogPointAgent//lpa.config");
writer.write(test1,root);
std::cout << root << std::endl;
return 0;
关于c++ - JsonCpp 写回 Json 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27486538/