Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 谷歌将API解码Json放在Android端_Java_Android_Json_Google Places Api - Fatal编程技术网

Java 谷歌将API解码Json放在Android端

Java 谷歌将API解码Json放在Android端,java,android,json,google-places-api,Java,Android,Json,Google Places Api,我对处理json相当陌生,目前正在使用GooglePlacesAPI获取餐厅详细信息。我已经尝试通过以下文章来解读它,比如 但它没有用,因为就我的理解而言,我的json字符串相当复杂 我使用这个特殊的函数通过Volley API获取json public String getVolleyURL() { String query = null; // query = SEARCH_QUERY + "&location=" + lat + ","

我对处理json相当陌生,目前正在使用GooglePlacesAPI获取餐厅详细信息。我已经尝试通过以下文章来解读它,比如

但它没有用,因为就我的理解而言,我的json字符串相当复杂

我使用这个特殊的函数通过Volley API获取json

public String getVolleyURL() {
        String query = null;
//            query = SEARCH_QUERY + "&location=" + lat + "," + lon + "&radius=" + radius;
            query = "&location=" + lat  + "," +longg + "&radius=" + radius;

        query = SEARCH_URL + query + "&key=" + GOOGLE_PLACE_KEY;
        Log.wtf(TAG, "Volley_URL = " + query);
        return query;
    }
返回以下Json字符串

{
   "html_attributions" : [],
   "results" : [
      {
         "formatted_address" : "Metropolitan Life North Building, 11 Madison Ave, New York, NY 10010, Verenigde Staten",
         "geometry" : {
            "location" : {
               "lat" : 40.74169,
               "lng" : -73.9872068
            },
            "viewport" : {
               "northeast" : {
                  "lat" : 40.74190884999999,
                  "lng" : -73.98716930000001
               },
               "southwest" : {
                  "lat" : 40.74161705,
                  "lng" : -73.98731529999999
               }
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/restaurant-71.png",
         "id" : "f758e0d7f68c659682afdb4b1c0749e7d3623839",
         "name" : "Eleven Madison Park",
         "opening_hours" : {
            "open_now" : false,
            "weekday_text" : []
         },
         "photos" : [
            {
               "height" : 1200,
               "html_attributions" : [
                  "\u003ca href=\"https://maps.google.com/maps/contrib/102127816559576392189/photos\"\u003eTammy Liu\u003c/a\u003e"
               ],
               "photo_reference" : "CoQBdwAAACwNCAsIpt6Li3P49bVZfSX8yDOA3QTsPsgc52jYRliBNBEqboYcE409Wf-ZYIae__HbKvaW1Xed-lnKjr0dus2Gbnn1Y8PTH_7HX89aiDo4lTASyuU8N7DxHndhiAXPqY-ZKozOzLcSYA7tP50_-caFILD36WpSQJIEWSPu3cgzEhCQ7c2ltmabHZsR88s-gc8kGhShA5LDudy3ZvcDAjalj9yn_KR7bw",
               "width" : 1800
            }
         ],
         "place_id" : "ChIJEWbXz6ZZwokRLKmKrtPfVFY",
         "price_level" : 4,
         "rating" : 4.5,
         "reference" : "CnRmAAAAWyhPb38cmZ765RA05cPPZkYqZbRGtDOOQi8d5yNuwCrvezX4liYo6DFNOdr8c-v2wwwnD9OqODteeO9oto9wNGI3F0ORvjKYCAwaNwGOMc2x8JYUljND4XmG41s0d44OXWxzloUQgRubjuFEDpTkhBIQAeucZk-7vCj6xP76Mkwt2RoUMaR7pkhrawYFttRUBIYellvYoJc",
         "types" : [ "restaurant", "bar", "food", "point_of_interest", "establishment" ]
      }
   ],
   "status" : "OK"
}

任何形式的帮助都将不胜感激!谢谢

你试过了吗?JSON是一种非常常见的标准格式,因此有大量的资源与之交互。可以看到JSON的“规则”。

你试过了吗?JSON是一种非常常见的标准格式,因此有大量的资源与之交互。可以看到json的“规则”。

假设您想从json响应中解码
格式的地址,请尝试以下操作:

注意:格式化的地址在json响应的“results”键下

JSONObject reader=新JSONObject(查询)

JSONObject sys=reader.getJSONObject(“结果”)

address=sys.getString(“格式化的_地址”)


因此,最后一个地址的值为“麦迪逊大街11号大都会人寿北大厦”

假设您想从json响应中解码
格式的地址
,请尝试以下操作:

注意:格式化的地址在json响应的“results”键下

JSONObject reader=新JSONObject(查询)

JSONObject sys=reader.getJSONObject(“结果”)

address=sys.getString(“格式化的_地址”)


所以最后一个地址的值是“麦迪逊大街11号大都会生活北楼”

这段代码应该可以帮助您解析来自google places api的数据快乐代码

 String reference;
 String vicinity;
 String rating;
JSONObject reader = new JSONObject(response);
JSONArray data = reader.getJSONArray("results");           
for (int i = 0; i < data.length(); i++) {
JSONObject place = (JSONObject) data.get(i);
 String idplace = place.getString("id");
 String name = place.getString("name");
 Double lat = place.getJSONObject("geometry").getJSONObject("location").getDouble("lat");
  Double lng = place.getJSONObject("geometry").getJSONObject("location").getDouble("lng");
 if(place.has("photos")) {
    reference = place.getJSONArray("photos").getJSONObject(0).getString("photo_reference");
                        }
                        else
                        {

                            reference =null;
                        }
                        if(place.has("vicinity")) {
                            //it has it, do appropriate processing
                             vicinity = place.getString("vicinity");
                        }
                        else
                        {

                            vicinity =null;
                        }

                        if(place.has("rating")) {
                            //it has it, do appropriate processing
                            rating = String.valueOf(place.getDouble("rating"));
                        }
                        else
                        {

                            rating =null;
                        }
                        // String vicinity = place.getString("vicinity");
                        //String rating = String.valueOf(place.getDouble("rating"));

                } catch (JSONException e) {
                    e.printStackTrace();
                }

        }
字符串引用;
弦附近;
串级;
JSONObject reader=新的JSONObject(响应);
JSONArray data=reader.getJSONArray(“结果”);
对于(int i=0;i
此代码将帮助您解析来自google places api的数据快乐代码

 String reference;
 String vicinity;
 String rating;
JSONObject reader = new JSONObject(response);
JSONArray data = reader.getJSONArray("results");           
for (int i = 0; i < data.length(); i++) {
JSONObject place = (JSONObject) data.get(i);
 String idplace = place.getString("id");
 String name = place.getString("name");
 Double lat = place.getJSONObject("geometry").getJSONObject("location").getDouble("lat");
  Double lng = place.getJSONObject("geometry").getJSONObject("location").getDouble("lng");
 if(place.has("photos")) {
    reference = place.getJSONArray("photos").getJSONObject(0).getString("photo_reference");
                        }
                        else
                        {

                            reference =null;
                        }
                        if(place.has("vicinity")) {
                            //it has it, do appropriate processing
                             vicinity = place.getString("vicinity");
                        }
                        else
                        {

                            vicinity =null;
                        }

                        if(place.has("rating")) {
                            //it has it, do appropriate processing
                            rating = String.valueOf(place.getDouble("rating"));
                        }
                        else
                        {

                            rating =null;
                        }
                        // String vicinity = place.getString("vicinity");
                        //String rating = String.valueOf(place.getDouble("rating"));

                } catch (JSONException e) {
                    e.printStackTrace();
                }

        }
字符串引用;
弦附近;
串级;
JSONObject reader=新的JSONObject(响应);
JSONArray data=reader.getJSONArray(“结果”);
对于(int i=0;i
使用类似于gson的API解析json并获取所需值。使用类似于gson的API解析json并获取所需值。