首页 > 解决方案 > 使用 Collections Google/gson 库更新 JSON 文件

问题描述

我有一个 ObjectA: 的列表List<ObjectA> listA;

我正在尝试将所有 listA 打印到 JSON 文件中,然后在执行此操作的函数中使用。 Files.write(Paths.get(filename), Collections.singleton(json.toJson(listA)), StandardCharsets.UTF_8); 这很好用。(只是为了说清楚 - json 的类型是 Gson ( Gson json = new Gson())

但是,我试图在关闭 json: 之前在 JSON 文件中添加以下行}:即我正在尝试添加以下行:"SomeString: " + someIntValue/AtomicInteger value 例如:sum: 8在 JSON 文件的末尾之前,如前所述}

如何在不使用迭代器打印 listA 中的每个对象的情况下做到这一点?有没有可能像我用一条线为 listA 做的那样简单?并以某种方式编辑它,例如在打开之前添加 listA[

标签: javajsoncollections

解决方案


最简单的方法是将您的 List 包装在一个对象中,让 gson 完成艰苦的工作。

class ListAWithStatistics {
    List<ObjectA> listA;
    int someString;
}

这个包装类还可以帮助您轻松反序列化生成的 json。


推荐阅读