0

Android アプリケーションでテキスト ファイルを読み取って JSONObject を作成しようとしていますが、テキスト ファイルを文字列に読み取った後、その文字列を使用して JSONObject を作成しようとすると、JSONException がスローされます。

私が使用しているコードは次のとおりです。

InputStream is = this.getResources().openRawResource(R.raw.quiz);
    BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
    String jsString = "";
    String line = null;
    while((line = reader.readLine()) != null){
        jsString += line;
    }
    is.close();
    reader.close();

    try {
        return new JSONObject(jsString);
    } catch (JSONException e) {

    }
    return null;  

私が読んでいるテキストファイルquiz.txtは次のとおりです。

{"length":3,"questions":[{"questionText":"Is mayonaise an instrument?","answers":["Yes","no","no","no","no"],"correctAnswer":0},{"questionText":"10^2","answers":["1","10","100","1000","over 9000"],"correctAnswer":1},{"questionText":"Dogs Name?","answers":["Barky","Steve","Rex","Daisy","Wormy"],"correctAnswer":3}]}
4

1 に答える 1

0

このメソッドを使用して、ファイルの内容を文字列に読み取ってみてください。

 public static String getJsonFromResource( int resource, Context context ) {

        InputStream inputStream = context.getResources().openRawResource( resource );
        BufferedReader r = new BufferedReader( new InputStreamReader( inputStream ) );
        StringBuilder stringBuilder = new StringBuilder();
        String line;
        String jsonString = null;
        try {
            while (( line = r.readLine() ) != null) {

                stringBuilder.append( line );
            }
            jsonString = stringBuilder.toString();
        }
        catch (Exception e) {
            Log.e( "GetJsonFromResource", Log.getStackTraceString( e ) );
        }
        return jsonString;
    }
于 2013-03-15T22:55:51.060 に答える