我正在 Android 项目中读取 JSON 文件,只是为了查看数组的第一个位置。
事实上,如果这个 JSON 比正常情况更大,我认为这效率不高......
我的 json 文件阅读器:
public static JSONObject parseJSONfromInputStrem (InputStreamReader isr){
try {
BufferedReader reader = new BufferedReader(isr,8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
isr.close();
json = sb.toString();
} catch (Exception e) {
Log.e("Buffer Error", "Error converting result " + e.toString());
}
// try parse the string to a JSON object
try {
jObj = new JSONObject(json);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
// return JSON String
return jObj;
}
我调用该函数的位置:
FileInputStream fis = c.openFileInput(file);
InputStreamReader isr = new InputStreamReader(fis);
JSONObject jso = JSONParser.parseJSONfromInputStrem(isr);
JSONArray myArray = jso.getJSONArray("data");
有什么方法可以有效地读取 JSONArray 的第一个位置?
最佳答案
您应该使用流式 JSON 解析器(想想 DOM 与 SAX)。
https://stackoverflow.com/a/823632/18573列出一些。可能还有其他人。
关于java - 打开一个非常大的 JSONArray(在文件中)的效率,只是为了查看第一个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14593313/