针对两个相对json Api的单一json Api解决方案

针对两个相对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

我正在为我的应用程序使用两个Json API,返回我所在的位置“name”和“approach”,其中as以分钟为单位返回我的持续时间

从json Api获取数据后,我尝试使用Volley库将数据加载到RecyclerView。我能够解析nearbyplace的响应,并能够在RecyclerView中加载“名称”和“附近”,但从当前位置加载“持续时间”时遇到问题

我正在编写以下代码来解析截击响应中的nearbyPlaces:

  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请求创建每个请求对象,然后将它们添加到队列中是很简单的。好的,谢谢你的帮助,我会按照你的指示去做,如果我的问题再次得到解决,我会告诉你