gpt4 book ai didi

java - Android 将 JSON 文件读/写到内部存储

转载 作者:行者123 更新时间:2023-12-02 13:21:55 26 4
gpt4 key购买 nike

我正在尝试使用 Gson 序列化我的 Java 类并将它们存储在 .json 文件中。我有一个ArrayList<Foo>我想存储在标记为 Foo 的节点下。 Gson 输出如下:

[{'id':1},{'id':2},{'id':3}]

我希望 Json 文件如下所示:

{
'Foo': [{'id':1},{'id':2},{'id':3}],
'bar': ...
}

我尝试过使用 JsonWriter 类,但我相信这是用于外部存储的,因为我得到了 ReadOnly错误。这就是我尝试写的方式:

FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(gson.toJson(foos).getBytes()); // foos is ArrayList<Foo>
fos.close();

我想我需要将其存储在 JsonObject 中,而不是直接将其写入文件。我可以单独附加每个对象,而不是对整个 ArrayList 进行 Json 化。如果我这样做,我将如何将其附加到文件中(而不是 JsonObject)?

我面临的主要问题实际上是从文件中读取。如何将整个 Json 文件读取到 JsonObject 中?

最佳答案

要获得所需的输出格式,您可以将列表放入带有键“foo”的 map 中。

    Map<String, List<Foo>> map = new HashMap<>();
map.put("Foo", foos);
String output = gson.toJson(map);

那么你应该得到这个输出

{
'Foo': [{'id':1},{'id':2},{'id':3}]
}

显然,您想要执行此类操作的主要原因是您要存储的内容不是名为“Foo”的列表。

关于java - Android 将 JSON 文件读/写到内部存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43528563/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com