在我的应用程序中,我使用JSON保存所有模型。通过将我的所有变量放在JSONObject
中,保存我的数据会将我的模型转换为JSONObject
:
public JSONObject toJSON() throws JSONException {
JSONObject json = new JSONObject();
json.put(JSON_ID, mId);
json.put xxx
...
return json;
}
然后使用Writer
创建.json文件。
当我需要加载我的模型时,我只需调用它的构造函数,如:
public MyModel(JSONObject json) throws JSONException {
mId = json.getInt(JSON_ID);
xxx
...
}
我从先前创建的文件加载JSONObject
。这很好用,我认为这是最佳选择。
但是我似乎无法理解如何保存存储在ArrayList
中的数据,因为您无法将ArrayList
放入JSONObject
。我尝试创建JSONArray
并发现JSONArray
s不可序列化。我可以通过将JSONArray
转换为String
并将其放入我的JSONObject
进行保存来解决此问题。然后,当我需要ArrayList
时,我只需使用已保存的JSONArray
分配新的String
,但是不是更好/更有效的方法来保存ArrayList
吗?