Jai Android
Jai Android

Reputation: 2171

Parse data of size about 3MB using json in ANDROID?

I have to parse data by HTTP request of size about 3MB, through JSon, but the parser that I am using is unable to do so. here is the JSon parser:

public static JSONObject getJSONfromURL(String url){

    InputStream is = null;
    String result = "";
    JSONObject jArray = null;

    //http post
    try{
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(url);
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity entity = response.getEntity();
        is = entity.getContent();

    }catch(Exception e){
          //  Log.e("log_tag", "Error in http connection "+e.toString());
    }

    //convert response to string
    try{
        BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),102400);

        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
        }
        is.close();
        result=sb.toString();

    }catch(Exception e){
           // Log.e("log_tag", "Error converting result "+e.toString());
    }

    try{

        jArray = new JSONObject(result);            
    }catch(JSONException e){
           // Log.e("log_tag", "Error parsing data "+e.toString());
    }
    return jArray;
}

Any help will really be appreciated. THANKS

Upvotes: 3

Views: 6925

Answers (1)

pawelzieba
pawelzieba

Reputation: 16082

You're parsing whole 3MB string in memory. It causes out of memory exception. Parse large data in stream:

Upvotes: 3

Related Questions