Android解析JSON并避免应用程序崩溃,如果JSONException

时间:2011-10-05 18:18:26

标签: android json exception

我的应用向服务器发送POST请求,并使用JSON格式获取响应。

有时候我的JSON响应为“null”(如果请求进入时间)。 在这种情况下,我需要通知用户超时(对话或吐司)并避免应用程序崩溃。

如何正确处理JSONException并避免应用程序崩溃?

谢谢! 马可

3 个答案:

答案 0 :(得分:3)

为了避免解析你的json时你的应用程序崩溃,试试这个:

if (jsonResponse == null) {
       // notify user
} else {
      try {
         // parse json here.
      } catch (JSONException e) {
        Toast.makeText(this,"Error on the response", 3000).show();
      }


}

答案 1 :(得分:1)

检查您的json响应是否为空。然后解析json。

if (jsonResponse == null) {
       // notify user
} else {
      // parse json here.
}

答案 2 :(得分:0)

获得完整的例外:

StatusLine statusLine = response.getStatusLine();
    if (statusLine.getStatusCode() == HttpStatus.SC_OK) {
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        response.getEntity().writeTo(out);
        out.close();
        jsonString = out.toString();
    }

    }catch(ConnectException e){             
    // handle your exception here, maybe something like
        Toast.makeText(context,"Error!",5000).show();
        finish(); 

    } catch (URISyntaxException e1) {
        e1.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }