Java 谷歌将API解码Json放在Android端
我对处理json相当陌生,目前正在使用GooglePlacesAPI获取餐厅详细信息。我已经尝试通过以下文章来解读它,比如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 + ","
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并获取所需值。