我想在我的设备中存储json值。因为每次应用程序都需要时间来加载json值。而不是多次加载,只想加载整个json值一次。没有互联网,我可以使用它。一旦互联网连接,应用程序将自动加载json值。我怎么能这样做?
答案 0 :(得分:0)
您可以使用数据库。
这样你也可以存储它。
Arraylist<ClassName> jsondata=new ArrayList<ClassName>
以下是一个例子:
public Class ClassName
{
string fname;
string lname;
public void setfname(String fname)
{
this.fname=fname;
}
public void setlname(String lname)
{
this.lname=lname;
}
public String getlname(String lname)
{
return lname;
}
public String getfname(String fname)
{
return fname;
}
答案 1 :(得分:0)
您可以使用SharedPreferences将json保存在应用程序的存储空间中。
代码 / * save * /
SharedPreferences pref = context.getSharedPreferences("mydata", MODE_PRIVATE);
Editor editor = pref.edit();
editor.put("myjson", json.toString());
editor.commit();
/ * restore * /
JSONObject ret = null;
SharedPreferences pref = context.getSharedPreferences("mydata", MODE_PRIVATE);
String jsonStr = pref.getString("myjson", null);
if (!TextUtil.isEmpty(jsonStr)) {
ret = new JSONObject(jsonStr); // need try-catch
}
==
每次启动应用程序时都进行还原。
对于第二部分&#34;一旦互联网连接,应用程序会自动加载json值。&#34;
您需要收听网络状态更改广播。当你收到广播说网络(或wifi)已连接,从服务器获取最新的json,替换内存中的json并将其保存到SharedPreferences