【发布时间】:2013-05-17 08:38:50
【问题描述】:
我必须将我的应用程序所做的事情记录到一个 json 文件中。预计应用程序会持续数周,因此我想逐步编写 json 文件。
目前我正在手动编写 json,但有一些日志阅读器应用程序正在使用 Jsoncpp lib,应该也可以使用 Jsoncpp lib 写下日志。
但是在手册和一些例子中我没有找到类似的东西。它总是这样的:
Json::Value root;
// fill the json
ofstream mFile;
mFile.open(filename.c_str(), ios::trunc);
mFile << json_string;
mFile.close();
这不是我想要的,因为它不必要地填满了内存。我想循序渐进地做。有什么建议吗?
【问题讨论】:
-
主要问题是 JSON 数据格式指定了一个结束标记“}”。因此,如果您希望您的日志文件在每次增量写入后成为有效的 JSON 块,您需要打开文件、删除关闭标记、附加数据并添加关闭标记。我在 jsoncpp 源代码中没有找到任何相关内容。
-
是的,这就是我目前正在手动执行的操作..
-
使您的日志格式为顺序 JSON 对象,而不是一个大对象。容易。