Android 截击JSON响应

Android 截击JSON响应,android,android-volley,Android,Android Volley,我想在我的代码中使用截取,我不明白下面的响应应该使用哪种请求类型。 网址::: 试试这个: RequestQueue requestQueue = Volley.newRequestQueue(context); final String url = "url here"; JsonObjectRequest getRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Res

我想在我的代码中使用截取,我不明白下面的响应应该使用哪种请求类型。 网址:::

试试这个:

RequestQueue requestQueue = Volley.newRequestQueue(context);
    final String url = "url here";

    JsonObjectRequest getRequest = new JsonObjectRequest(Request.Method.GET, url, null,
            new Response.Listener<JSONObject>()
            {
                @Override
                public void onResponse(JSONObject response)
                {
                Log.e(" result",(String.valueOf(response)));
                }
            },
            new Response.ErrorListener()
            {
                @Override
                public void onErrorResponse(VolleyError error) {

                }
            }
    );
   requestQueue.add(getRequest);
希望这有帮助

StringRequest jsonObjectRequest = new StringRequest(Request.Method.POST, url,  new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {

                if (response != null) {
                    try {
JSONObject jsonObject = new JSONObject(response);
                        if (jsonObject.getString("status").equalsIgnoreCase("success")) {
                    JSONArray jsonArray = jsonObject.getJSONArray("data"); 
if(jsonArray!=null && jsonArray.length()>0){
    for(int i=0;i<jsonArray.length();i++){
JSONObject data_object=jsonArray.getJSONObject(i);
JSONArray recepie = data_object.getJSONArray("recipes"); 

}
//                           
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                }

        });
        MySingleton.getInstance(context).addToRequestQueue(jsonObjectRequest);
        jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy(
                APIConstants.API_TIMEOUT, //for 30 Seconds
                DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
                DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
    }

希望这有帮助

这似乎是一个JSON对象,因此您应该使用JsonObjectRequest您应该使用JsonRequest。请参阅我在本博客上的回答:当我使用jsonobject请求时,以下错误显示:::com.android.volley.ParseError:org.json.JSONException:java.lang.String类型的值Connect无法转换为jsonobject。我看到结尾处的逗号是这个输入错误还是它确实是一个不完整的数组?我怀疑json数据不正确。数据数组不是封闭的,我想预处理是属性的一部分。仅供参考,当服务器部署在您的系统中时,您的本地主机url将仅适用于您,而不适用于我们。我也尝试过它,但它显示字符串请求无法转换为Json对象。请看一下
StringRequest jsonObjectRequest = new StringRequest(Request.Method.POST, url,  new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {

                if (response != null) {
                    try {
JSONObject jsonObject = new JSONObject(response);
                        if (jsonObject.getString("status").equalsIgnoreCase("success")) {
                    JSONArray jsonArray = jsonObject.getJSONArray("data"); 
if(jsonArray!=null && jsonArray.length()>0){
    for(int i=0;i<jsonArray.length();i++){
JSONObject data_object=jsonArray.getJSONObject(i);
JSONArray recepie = data_object.getJSONArray("recipes"); 

}
//                           
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                }

        });
        MySingleton.getInstance(context).addToRequestQueue(jsonObjectRequest);
        jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy(
                APIConstants.API_TIMEOUT, //for 30 Seconds
                DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
                DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
    }