针对两个相对json Api的单一json Api解决方案
我正在为我的应用程序使用两个Json API,返回我所在的位置“name”和“approach”,其中as以分钟为单位返回我的持续时间 从json Api获取数据后,我尝试使用Volley库将数据加载到RecyclerView。我能够解析nearbyplace的响应,并能够在RecyclerView中加载“名称”和“附近”,但从当前位置加载“持续时间”时遇到问题 我正在编写以下代码来解析截击响应中的nearbyPlaces:针对两个相对json Api的单一json Api解决方案,json,google-places-api,android-volley,android-recyclerview,google-distancematrix-api,Json,Google Places Api,Android Volley,Android Recyclerview,Google Distancematrix Api,我正在为我的应用程序使用两个Json API,返回我所在的位置“name”和“approach”,其中as以分钟为单位返回我的持续时间 从json Api获取数据后,我尝试使用Volley库将数据加载到RecyclerView。我能够解析nearbyplace的响应,并能够在RecyclerView中加载“名称”和“附近”,但从当前位置加载“持续时间”时遇到问题 我正在编写以下代码来解析截击响应中的nearbyPlaces: String NEARBY_URL = "https://maps
String NEARBY_URL = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location="+current_latitude+","+current_longitude+"&radius=500&types=embassy|shopping_mall|school|zoo|taxi_stand&key=AIzaSyD784AbXVmgxPLyeIUG137FEMu-82sadK4";
Log.e("Response:", NEARBY_URL);
final JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.GET, NEARBY_URL, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.e("Response:", response.toString());
try {
String status = response.getString("status");
if (status.equalsIgnoreCase("OK")) {
JSONArray arrayObject = response.getJSONArray("results");
Log.e("Array Obj:", arrayObject.toString());
name_array = new ArrayList<>();
add_array = new ArrayList<>();
latitide_array=new ArrayList<>();
longitude_aray =new ArrayList<>();
for (int i = 0; i < arrayObject.length(); i++) {
JSONObject c = arrayObject.getJSONObject(i);
//below codes for current place and vicinity
String name = c.getString("name");
String address = c.getString("vicinity");
Log.e("Name", name);
Log.e("Address", address);
name_array.add(name);
add_array.add(address);
//below code to get latitude and longitude of specific location
JSONObject geometry = c.getJSONObject("geometry");
JSONObject locaction = geometry.getJSONObject("location");
Double lat = locaction.getDouble("lat");
Double lng = locaction.getDouble("lng");
Log.e("Latitude>>>>", lat.toString() + " " + lng.toString());
latitide_array.add(lat);
longitude_aray.add(lng);
//adding places detail in ArrayList for passing a pararmeter for RecyclerAdapter
nearby_items.add(new NearbyPlaces(name_array.get(i).toString(), add_array.get(i).toString(), "0.2", R.drawable.icon_rate));
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("Error: ", "Error: " + error.getMessage());
Toast.makeText(getActivity(),
error.getMessage(), Toast.LENGTH_SHORT).show();
// hide the progress dialog
// hidepDialog();
}
});
// Adding request to request queue
app.addToRequestQueue(jsonObjReq);
}
String\u URL=”https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=“+当前纬度+”,“+当前经度+”&半径=500&类型=大使馆|购物商场|学校|动物园|出租车|站和钥匙=AIzaSyD784AbXVmgxPLyeIUG137FEMu-82sadK4”;
Log.e(“响应:”,附近的URL);
final JsonObjectRequest JSONObjectReq=新的JsonObjectRequest(Request.Method.GET,邻近的_URL,null,new Response.Listener()){
@凌驾
公共void onResponse(JSONObject响应){
Log.e(“Response:,Response.toString());
试一试{
字符串状态=response.getString(“状态”);
if(状态相等信号情况(“正常”)){
JSONArray arrayObject=response.getJSONArray(“结果”);
Log.e(“数组对象:”,arrayObject.toString());
name_array=newarrayList();
add_array=new ArrayList();
latitide_数组=新的ArrayList();
经度=新数组列表();
对于(int i=0;i>>”,lat.toString()+“”+lng.toString());
latitide_数组。添加(lat);
经度加总(液化天然气);
//在ArrayList中添加places详细信息以传递RecyclerAdapter的参数
添加(新的NearbyPlaces(name_array.get(i).toString(),add_array.get(i).toString(),“0.2”,R.drawable.icon_rate));
}
}
}捕获(JSONException e){
e、 printStackTrace();
}
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
d(“错误:”,“错误:”+Error.getMessage());
Toast.makeText(getActivity(),
错误.getMessage(),Toast.LENGTH_SHORT).show();
//隐藏进度对话框
//hidepDialog();
}
});
//将请求添加到请求队列
app.addToRequestQueue(jsonObjReq);
}
我面临的问题是,我无法在截击中以相同的响应解析“Googel距离矩阵API”
是否可以从截取中解析多个API?或者我们可以使用单个API获取“地名”、“地址”和“两个地质点之间的距离”
我也在谷歌上搜索过,但没有找到任何解决方案,希望这里有一些指导原则,谢谢你为什么你不能提出两个不同的要求?每个响应都对应于所做的请求。@razzledazzle感谢您的响应,是否可以在Volley请求中传递两个url作为参数……我不确定,HTTP请求不应该以这种方式工作,每个请求都会得到一个响应。为每个API请求创建每个请求对象,然后将它们添加到队列中是很简单的。好的,谢谢你的帮助,我会按照你的指示去做,如果我的问题再次得到解决,我会告诉你