我有一个非常长的字符串(或多或少5000行),这是我需要从中获取数据的JSON。在这个json中,当用户使用我的应用程序显示特定信息时,我想要阅读大量数据。
由于JSON数组不太可能发生变化,我认为保持存储并使用.apk服务而不是启动与我的服务器的新HTTP连接会更好,在资源方面。
存储这么大的变量的最佳做法是什么?
答案 0 :(得分:0)
您可以将数据保存在Text文件中,并将其放在android app的assets文件夹中。当您需要数据时,只需打开文件并阅读即可。
答案 1 :(得分:0)
您可以将JSON
数据存储到File
中,并在需要时稍后检索。
将JSON
存储到File
:
String fileName = "yourFile.json";
String jsonResponse = json.toString(); // here json is JSONObject or JSONArray
// Store
saveJSONData(this, jsonResponse);
public void saveJSONData(Context context, String mJsonResponse) {
try {
FileWriter file = new FileWriter(context.getFilesDir().getPath() + "/" + fileName);
file.write(mJsonResponse);
file.flush();
file.close();
} catch (IOException e) {
Log.e("TAG", "Error in Writing: " + e.getLocalizedMessage());
}
}
从JSON
检索File
:
String fileName = "yourFile.json";
// Retrieve
String jsonResponse = getJSONData(this);
public String getJSONData(Context context) {
try {
File f = new File(context.getFilesDir().getPath() + "/" + fileName);
//check whether file exists
FileInputStream is = new FileInputStream(f);
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
return new String(buffer);
} catch (IOException e) {
Log.e("TAG", "Error in Reading: " + e.getLocalizedMessage());
return null;
}
}
希望这会有所帮助〜