2017-02-09 63 views
-1

我想解析一個JSON對象。 JSON響應如下。JSON數組內部嵌套的JSON對象

{ 
    "message": "Success", 
    "list": [ 
    { 
     "orderId": 24, 
     "phoneNumber": "1234567893", 
     "totalAmount": 100, 
     "addressBean": { 
     "cadId": 1, 
     "phone2": "1234567899", 
     "address1": "34, gandhi nagar", 
     } 
}, 

下面是我嘗試獲取「orderId」,「phoneNumber」和「totalAmount」的Android代碼。

final List<OrderModel> orderList = new ArrayList<>(); 

    public void onResponse(JSONObject response) { 
        try { 

         if (response.getString("message").equalsIgnoreCase("Success")) { 
          JSONArray jArray = response.getJSONArray("list"); 

          for (int i = 0; i < jArray.length(); i++) { 

           OrderModel model = new OrderModel(); 
           orderModel.setOrderId(jArray.getJSONObject(i).getString("orderId")); 
           orderModel.setphoneNumber(jArray.getJSONObject(i).getString("phoneNumber")); 
           orderModel.setTotalAmount(new BigDecimal(jArray.getJSONObject(i).getString("totalAmount"))); 
           orderList.add(orderModel); 

          } 
          setOrderList(orderList); 

我想顯示 「cadId」,在一個TextView 「PHONE2」 和 「地址1」。我怎樣才能做到這一點?

回答

1

嘗試使用此代碼

try { 
     JSONArray jArray = response.getJSONArray("list"); 
     for (int i = 0; i < jArray.length(); i++) { 
      JSONObject jsonObject = jArray.getJSONObject(i); 
      if (jsonObject.has("addressBean")){ 
       JSONObject addressObject = jsonObject.getJSONObject("addressBean"); 
       int cadId = addressObject.getInt("cadId"); 
       String phone = addressObject.getString("phone2"); 
       String address = addressObject.getString("address1"); 
      } 
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
+0

感謝你的努力。試過這也。有用.. – Nandz

1

代碼phone2

String phone2 = jArray.getJSONObject(i).getJSONObject("addressBean").getString("phone2"); 

使用getInt()爲cadId