2014-05-15 317 views
0

我不知道爲什麼我在與解析這個簡單的JSON這麼多的問題:的Android解析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(); 
    } 

回答

2

更換

river = response.getJSONArray("result");                     

river = response.getJSONObject("result");   

result標籤是JSONObject,而不是一個JSONArray

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"); 
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); } 
          }