簡體   English   中英

Android將JSON文件讀/寫到內部存儲

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM