JSON数组中嵌套的JSON对象

时间:2017-02-09 13:32:55

标签: android json nested

我正在尝试解析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);

我想在Textview中显示“cadId”,“phone2”和“address1”。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

尝试使用此代码

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

答案 1 :(得分:1)

phone2的代码

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

getInt()用于cadId