打开一个非常大的JSONArray(在一个文件中)的效率,只是为了看到第一个位置

时间:2013-01-29 22:35:49

标签: java android json

我正在读取我的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的第一个位置?

2 个答案:

答案 0 :(得分:3)

你应该使用流JSON解析器(想想DOM vs SAX)。

https://stackoverflow.com/a/823632/18573列出一些。可能还有其他人。

答案 1 :(得分:0)

您可以读取少量文件并手动拉出值,也可以将值放入单独的文件中。即使它是重复数据,包含主文件中的汇总信息或关键信息的辅助文件也会使事情更有效。