Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android将JSON文件读/写到内部存储器_Java_Android_Json - Fatal编程技术网

Java Android将JSON文件读/写到内部存储器

Java Android将JSON文件读/写到内部存储器,java,android,json,Java,Android,Json,我试图使用Gson序列化我的Java类并将它们存储在一个.json文件中。我有一个ArrayList,我想存储在标记为Foo的节点下。Gson的输出如下: [{'id':1},{'id':2},{'id':3}] 我希望Json文件如下所示: { 'Foo': [{'id':1},{'id':2},{'id':3}], 'bar': ... } 我已经尝试过使用JsonWriter类,但我相信这是用于外部存储的,因为我得到了一个只读错误。这就是我试图写它的方式: FileOu

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

[{'id':1},{'id':2},{'id':3}]
我希望Json文件如下所示:

{
    'Foo': [{'id':1},{'id':2},{'id':3}],
    'bar': ...
}
我已经尝试过使用JsonWriter类,但我相信这是用于外部存储的,因为我得到了一个
只读
错误。这就是我试图写它的方式:

FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(gson.toJson(foos).getBytes()); // foos is ArrayList<Foo>
fos.close();
FileOutputStream fos=openFileOutput(文件名,上下文.MODE\u PRIVATE);
fos.write(gson.toJson(foos.getBytes());//foos是ArrayList
fos.close();
我认为我需要将其存储在JsonObject中,而不是直接将其写入文件。我可以单独附加每个对象,而不是对整个ArrayList进行JSonification。如果这样做,我将如何将其附加到文件中(与JsonObject相反)


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

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


显然,您希望这样做的主要原因是,如果您存储的不是名为“Foo”的列表,那么LogCat中显示的异常到底是什么?在哪一行代码上?
    Map<String, List<Foo>> map = new HashMap<>();
    map.put("Foo", foos);
    String output = gson.toJson(map);
{
    'Foo': [{'id':1},{'id':2},{'id':3}]
}