2016-11-30 8 views
0

住所の特定の形式のGoogle places APIを解析しています。しかし、私は解析後にヌル値を取得しています。私は、アドレス形式がMumbai, Maharashtra, IN, 400047のようにしたい。そのために、のパラメータtypesをArrayListに保存してから、特定の文字列をチェックしています。しかし、私は値としてnullを得ています。都市、州、国コード、および郵便番号の詳細についてGoogle Places APIを解析するにはどうすればよいですか?

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++){ 
 
             typo.add(jarray.getString(j)); 
 
             if(Arrays.asList(typo).contains("administrative_area_level_2")){ 
 
              cityStr = long_name; 
 
             }else if(Arrays.asList(typo).contains("administrative_area_level_1")){ 
 
              stateStr = long_name; 
 
             }else if(Arrays.asList(typo).contains("country")){ 
 
              countryStr = short_name; 
 
             }else if(Arrays.asList(typo).contains("postal_code")){ 
 
              zipStr = long_name; 
 
             } 
 

 
            } 
 

 

 
           } 
 
          } 
 

 
          result = cityStr + ", " + stateStr + ", " + zipStr + ", " + countryStr; 
 
          
 

 

 
        }

答えて

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; 
 
         

関連する問題