当前位置: 首页 > 知识库问答 >
问题:

截击JSON响应

董和泽
2023-03-14

我想在我的代码中使用Volley,我应该在下面的响应中使用哪种请求类型,我不明白。URL:::http://localhost/api/product/read.php

    {
      "data":[
        {
         "category_id":"1",
         "category_name":"Today's Recipe",
         "recipes":[
          {
           "id":"1",
           "recipe_name":"Peanut, and Chilli Noodles",
           "ingredients":"Serves: 4 \r\n\r\n250g (9 oz) fresh Chinese ,
           "prepration":"Prep:15min Cook:10min Ready in:25min \r\n\r\nCook 
           noodles in a large pot of boiling water until done.  have 
           chilli paste, use minced red chilli to taste."
     }
    ]
  },

共有2个答案

令狐宏伟
2023-03-14
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));
    }

希望这能有所帮助

靳越
2023-03-14

试试这个:

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);

希望这能有所帮助。

 类似资料:
  • 我正在使用截击来管理我的应用程序。有时,当响应很大时,我会在没有太多RAM的设备上获得OOM。我不确定如何解决这个问题。我知道Volley会将其响应存储在内存中,但我的应用程序太多地围绕着Volley,切换起来会很痛苦。我在使用改装时也遇到了问题。我尝试过使用JsonReader,但它似乎仍在发生。我有一个用于截击的自定义请求。它返回一个Gson JsonObject。这是我目前的代码,当响应数据

  • 我正在开发一个与我编写的RESTful网络服务通信的Android应用程序。在GET方法中使用Volley非常简单,但是我不能把我的手指放在POST方法上。 如何从我的post请求响应中获取字段这是我的响应 我想只有"访问令牌"内容 这是我的密码 请帮帮我?!

  • 我一直在使用volley库与我的android应用程序一起消费服务。我注意到一些奇怪的事情,当我试图将一个json对象发送到服务器时,我必须创建一个JSONObject类型的响应监听器。但我的服务器返回一个字符串,成功或失败。是否可以编写一个等待字符串响应的JsonObjectRequest?这就是我所写的。服务运行正常,但由于无法将字符串收敛到JSON,在成功post后会触发onErrorRes

  • 问题内容: 我有一个使用AngularJS和服务器端后端构建的应用程序,该后端以JSON形式传递所有请求。每个请求都包装在一个JSON容器中,该容器包含一个数据变量,该变量包含特定于该请求的数据。其他数据用于保持应用程序内的状态和控制,检查错误和成功消息以及检查会话标志。所有其他变量都随EVERY请求一起提供,并且在数据变量之前先进行检查。 现在,我有一种方法可以先检查JSON响应的内容,然后再检

  • 我使用Spring设置,使用json映射转换器将POJO类作为json发送回客户端。 例如。: 这将返回例如类似于客户端的内容: 我想截取所有控制器操作,将json包装成如下内容: 最好的方法是什么?