(Volley) Post 方法后如何处理返回的 JsonObject

Posted

技术标签:

【中文标题】(Volley) Post 方法后如何处理返回的 JsonObject【英文标题】:(Volley) How to handle returning JsonObject after Post Method 【发布时间】:2019-01-21 12:55:41 【问题描述】:

我在 Volley 中使用 Post 方法发送对象。我的 api 返回像邮递员这样的数据,这就是我想要的。

“操作状态”:3, “消息”:[ “消息”:“哈塔!” ]

但我试图让我的方法在 onResponse 中处理这些数据。但它只返回 200。

StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() 
            @Override
            public void onResponse(String response) 
                Log.i("LOG_RESPONSE", response);
                Toast.makeText(DetailAirdrop.this, response, Toast.LENGTH_SHORT).show();

            

有没有什么方法可以在volley中的post方法之后获取jsonObject?


已解决

解决方案:

JsonObjectRequest postRequest = new JsonObjectRequest( Request.Method.POST, url,
                jsonObject,
                new Response.Listener<JSONObject>() 
                    @Override
                    public void onResponse(JSONObject response) 
                        Toast.makeText(DetailAirdrop.this, response.toString(), Toast.LENGTH_SHORT).show();

                    

【问题讨论】:

你覆盖了 parsenetworkresponse 吗? 请不要将解决方案显示为问题的一部分。如果您的问题已通过其他人发布的答案得到解决,您应该接受此答案。如果您找到了解决问题的方法并希望分享,请写下您自己问题的答案并接受。 【参考方案1】:

试试看:

        Volley.newRequestQueue(getActivity()).add(new StringRequest(Request.Method.GET,"LINK", new Response.Listener<String>() 
        @Override
        public void onResponse(String s) 
            JSONObject mJsonObject;

            try 
                mJsonObject = new JSONObject(s);

               Toast.makeText(DetailAirdrop.this, 
               mJsonObject.getString("operationStatus") Toast.LENGTH_SHORT).show();

                JSONArray mJsonArray = mJsonObject.getJSONArray("messages");
                int a = mJsonArray.length();
                for (int i = 0; i < a; i++) 

                    JSONObject jo = mJsonArray.getJSONObject(i);

             Toast.makeText(DetailAirdrop.this, 
           mModel.setID(jo.getString("message"), Toast.LENGTH_SHORT).show();

                
             catch (JSONException e) 
                Toast.makeText(getActivity(), "Crash", Toast.LENGTH_SHORT).show();
                e.printStackTrace();
            



        
    , new Response.ErrorListener() 
        @Override
        public void onErrorResponse(VolleyError volleyError) 

        
    ));

我测试过它会起作用 如果它工作我的回答者TY :)

【讨论】:

以上是关于(Volley) Post 方法后如何处理返回的 JsonObject的主要内容,如果未能解决你的问题,请参考以下文章

Spring Security登录成功后如何处理用户信息

分组后如何处理大型集合聚合?

表单关闭后如何处理非托管资源? [复制]

从 QIODevice.read() 读取后如何处理数据?

reCAPTCHA V3:空闲后如何处理过期令牌?

用户选择允许后如何处理启用位置服务?