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