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 に答える