[英]Android Read/Write JSON file to Internal Storage
我正在嘗試使用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,我可以分別附加每個對象。 如果執行此操作,如何將其附加到文件中(與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”的列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.