如何针对城市,州,国家/地区代码和Zip详细信息解析Google Places API?

时间:2016-11-30 09:37:14

标签: android google-places-api

我正在解析google places api的特定地址格式。但解析后我得到空值。我希望地址格式如下:Mumbai, Maharashtra, IN, 400047。为此我将types的{​​{1}}保存到ArrayList中,然后检查特定的字符串。但是我作为价值得到了空。

address_components

1 个答案:

答案 0 :(得分:0)

我尝试了很多东西。最后,对我有用的是optString()。使用optString,我检查数组参数types



 JSONObject jsonObject = new JSONObject(stringBuilder.toString());
                    if (jsonObject.getString("status").equals("OK")) {
                        JSONArray array = jsonObject.getJSONArray("results");
                            for(int k=0;k<array.length();k++){
                                JSONObject jObj = array.getJSONObject(0);
                                JSONArray jarr = jObj.getJSONArray("address_components");
                                for(int i=0; i<jarr.length();i++){
                                    JSONObject jobj = jarr.getJSONObject(i);
                                    String long_name = jobj.getString("long_name");
                                    String short_name = jobj.getString("short_name");
                                    JSONArray jarray = jobj.getJSONArray("types");
                                    for(int j=0; j<jarray.length();j++){
                                        String object = jarray.optString(j);
                                        if(object.equals("administrative_area_level_2")){
                                            cityStr = long_name;
                                            System.out.println("sammy_city "+cityStr);
                                        }
                                        if(object.equals("administrative_area_level_1")){
                                            stateStr = long_name;
                                            System.out.println("sammy_state "+stateStr);
                                        }
                                        if(object.equals("country")){
                                            countryStr = short_name;
                                            System.out.println("sammy_country "+countryStr);
                                        }
                                        if(object.equals("postal_code")){
                                            zipStr = long_name;
                                            System.out.println("sammy_zip "+zipStr);
                                        }

                                    }


                                }
                            }

                            result = cityStr + ", " + stateStr + ", " + zipStr + ", " + countryStr;
                            
&#13;
&#13;
&#13;