是否可以在共享首选项中保存 JSON 数组?
2022-09-01 05:39:56
我有一个需要保存的 JSON 数组。我正在考虑序列化它,但是将其另存为共享首选项中的字符串,然后在我需要读取它时重建它会更好吗?
我有一个需要保存的 JSON 数组。我正在考虑序列化它,但是将其另存为共享首选项中的字符串,然后在我需要读取它时重建它会更好吗?
Java 中的 JSON 对象不是开箱即用地实现可序列化的。我已经看到其他人扩展了该类以允许这样做,但对于您的情况,我只是建议将JSON对象存储为字符串并使用其toString()函数。我在这方面取得了成功。
editor.putString("jsondata", jobj.toString());
并把它拿回来:
String strJson = sharedPref.getString("jsondata","0");//second parameter is necessary ie.,Value to return if this preference does not exist.
if (strJson != null) {
try {
JSONObject response = new JSONObject(strJson);
} catch (JSONException e) {
}
}
http://developer.android.com/reference/org/json/JSONObject.html#JSONObject(java.lang.String)
这取决于数组的大小。假设它不是可笑的大(小于几百 Kb),只需将其存储到共享首选项即可。如果它大于此值,则可以将其保存到文件中。