我有一个包含json对象数组的json文件。我正在使用rapidjson c ++。
我想将新对象追加到此文件中的json数组
目前我所做的是我使用fileread流读取json对象中的整个文件,并使用AddMember在我之前读过的该文档的数组中添加新成员(new json对象)。现在我在文件中覆盖这个新对象,并重复新对象的过程。
此解决方案无法扩展。有人可以使用rapidjson或raw filestream指出任何其他解决方案。帮助将不胜感激,我一直在互联网上寻找,但没有运气。
是否有类似使用json以增量方式附加到文件。 或任何其他可扩展的解决方案,因为我的文件大小会随着时间的推移变得非常大,因此每次读取整个文件然后附加一个新对象,然后重写整个文件将浪费内存和CPU时间。
请帮我解决这个问题
答案 0 :(得分:1)
这个问题来自几年前,但是这个答案仍然有意义。
目标是将带有json
的{{1}}对象附加到包含rapidjson
数组的可能已经存在的文件中。满足以下条件:
以下是带有注释的代码:
json
答案 1 :(得分:0)
我不知道是否有现成的库,但如果你决定自己做这件事并非不可能。 只需几步即可:
1)在ram中加载所有JSON。 2)接受每个请求以附加JSON并将其保存到日志文件中 3)在写入记录请求后更新JSON在RAM中 4)每x秒块更改,将所有JSON写入磁盘并清除日志文件 5)取消阻止更改 6)转到2
进一步优化可以b:
1)在启动时(崩溃后)检查日志文件并应用日志请求 2)当您编写JSON文件时,不要完全重写,但检查最后是否只有附加,只写新部分。 这听起来怎么样?