0

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

4

2 回答 2

3

您应该使用流式 JSON 解析器(想想 DOM 与 SAX)。

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

于 2013-01-29T23:03:34.937 回答
0

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

于 2013-01-29T23:00:34.227 回答