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

标签 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 的第一个位置?

最佳答案

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

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

关于java - 打开一个非常大的 JSONArray(在文件中)的效率,只是为了查看第一个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14593313/

相关文章:

java - 我可以忽略 ObjectMapper 中的 MismatchedInputException 吗?

java - 选择 Java Web 框架 2011

java - Hadoop一台机器仅运行一项任务

机器人 : stop a sticky service

android - 如何防止 Android 三星平板电脑上带有 Phonegap 的 Jquery Mobile 使用横向高度作为纵向高度?

android - 外部库和 Android list

json - 选择两个 Hive 表的结果作为 JSON 输出

java - Android 上的 Connect4,计时问题

java - 在 android studio 中存储位图与使用 url 获取位图

javascript - AJAX 调用 - 逻辑去哪里了?