Android Parse JSON响应

时间:2014-05-15 08:41:03

标签: android json parsing

我不知道为什么我在解析这个简单的json时遇到这么多问题:

{"status":0,"result":{"success":false,"message":"Error"}}

我如何获得成功消息字符串?

    try {
        river = response.getJSONArray("result");

        // looping through All Contacts
        for(int i = 0; i < river.length(); i++){
            JSONObject c = river.getJSONObject(i);

            if (c.has("message")) {
                message = c.getString("message");
                System.out.println("object_guid:"+message); }

            if (c.has("success")) {
                success = c.getString("success");
                System.out.println("subtype:"+success); }

        }

    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

3 个答案:

答案 0 :(得分:2)

替换

river = response.getJSONArray("result");                                                                                

river = response.getJSONObject("result");          

result代码是JSONObject而不是JSONArray

答案 1 :(得分:2)

你的result不是jsonarray,它是一个对象。

{"status":0,"result":{"success":false,"message":"Error"}}

JSONObject river = response.getJSONObject("result"); 
String success = river.getString("success"); 
String message = river.getString("message"); 

答案 2 :(得分:0)

在您的回复中,您没有获得JSONArray。它仅包含JSONObjects。因此,您需要获取JSONObject而不是JSONArray

试试如下:

                 river = response.getJSONObject("result");                                                                                
                         if (river.has("message")) {
                                  message = river.getString("message");                   
                                  System.out.println("object_guid:"+message); }

                           if (river.has("success")) {
                                  success = river.getString("success");                   
                                 System.out.println("subtype:"+success); }
                            }