我正在读取我的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的第一个位置?
答案 0 :(得分:3)
你应该使用流JSON解析器(想想DOM vs SAX)。
https://stackoverflow.com/a/823632/18573列出一些。可能还有其他人。
答案 1 :(得分:0)
您可以读取少量文件并手动拉出值,也可以将值放入单独的文件中。即使它是重复数据,包含主文件中的汇总信息或关键信息的辅助文件也会使事情更有效。