Volley jsonArray Pass

问题描述 投票:0回答:1

伙计们,我在获取json数组时遇到了一些问题,如何获取“状态”

我的JSON:

    {
        "place_id": 285711754,
        "licence": "Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright",
        "osm_type": "way",
        "osm_id": 338974979,
        "lat": "22.3853080529788",
        "lon": "33.515458351351",
        "place_rank": 26,
        "category": "highway",
        "type": "unclassified",
        "importance": 0.1,
        "addresstype": "road",
        "name": null,
        "display_name": "Red Sea Governorate, Egypt",
        "address": {
            "state": "Red Sea Governorate",
            "country": "Egypt",
            "country_code": "eg"
        },
        "boundingbox": [
            "22.298938",
            "22.4798642",
            "33.4408912",
            "33.5530448"
        ]
    }

我的Java:

try{
       JSONObject jsonObject = new JSONObject(response);

                JSONArray postsArray = jsonObject.getJSONArray("address");

                for (int i = 0 ; i<postsArray.length() ;i++) {
                    JSONObject postObject = postsArray.getJSONObject(i);
                    state= postObject.getString("state");
                     country= postObject.getString("country");

                }

    try{

        JSONObject jsonObject = new JSONObject(response);//my problem



                JSONArray postsArray = jsonObject.getJSONArray("address");


                    JSONObject postObject = postsArray.getJSONObject(0);
                    state= postObject.getString("state");
                     country= postObject.getString("country");
    }



java android json android-studio android-volley
1个回答
0
投票

根据您的JSON响应,您的address属性是JSONObject,而不是JSONArray

try{
   JSONObject jsonObject = new JSONObject(response);
   JSONArray addressObject = jsonObject.getJSONObject("address");
   state = addressObject.getString("state");
   country= addressObject.getString("country");
}
© www.soinside.com 2019 - 2024. All rights reserved.