2017-07-30 64 views
2

前2個對象我正在試圖解析一些JSON在我的Android應用程序,但我不斷收到一個錯誤說解析JSON有數組

這是我使用的當前代碼「爲用戶沒有價值」:

JSONObject parentObject = new JSONObject(finalJSON); 

      JSONObject childObject = new JSONObject(String.valueOf(parentObject)); 

      JSONArray parentArray = childObject.getJSONArray("users"); 

      JSONObject finalObject = parentArray.getJSONObject(0); 

      String userName = finalObject.getString("username"); 

      String profileLink = finalObject.getString("profileimage"); 

      Log.d("JSON", String.valueOf(finalObject)); 

      return profileimage+ " - " + profileLink ; 

,這裏是我的JSON:

{ 
"reply": { 
    "users": [ 
     { 
      "userid": "001", 
      "loggedIn": 1, 
      "username": "joe.bloggs", 
      "profileimage": "http://127.0.0.1/joebloggs.png", 
      "realname": "Joe Bloggs", 
     } 
    ] 

    } 
} 

提前感謝!

回答

3

您忘記了reply的等級。

這是你應該做的。

JSONObject parentObject = new JSONObject(finalJSON); 


JSONArray userArray = parentObject 
       .getJSONObject("reply") 
       .getJSONArray("users"); 

JSONObject finalObject = userArray.getJSONObject(0); 
+0

感謝您的答覆,所以我只是去嘗試,但它要求我把它包裝成一個整數? – JD245

+0

沒關係,我試圖做.getJSONArray(「回覆」)。getJSONArray(「用戶」)。 – JD245

0

你不能爲對象內部的對象採取新的對象。

您必須對對象內部的對象進行解析。

JSONObject object1 = new JSONObject(finalJSON); 

JSONObject object2 = object1.getJSONObject("reply"); 

JSONArray jsonArray = object2.getJSONArray("users"); 

JSONObject object3 = jsonArray.getJSONObject(0); 
0

嘗試以下操作:

JSONObject root = null; 
try { 
    root = new JSONObject("reply"); 
    JSONArray childArray = root.getJSONArray("users"); 
    String userName = childArray.getString(0); 
    . 
    . 
    . 
} catch (JSONException e) { 
    e.printStackTrace(); 
}