【问题标题】:JSON Array Parsing using Android Volley without a TAG使用没有 TAG 的 Android Volley 进行 JSON 数组解析
【发布时间】:2019-01-13 16:18:18
【问题描述】:

如何使用 Android Volley 解析以下 JSON?

[ { “味精”:“成功”, “id”:“1542”, “名字”:“山姆”, "姓氏": "孟加拉", “电子邮件”:“bs@gmail.com”, “移动”:“8169830000”, “appapikey”:“f82e4deb50fa3e828eea9f96df3bb531” } ]

【问题讨论】:

标签: android json android-volley


【解决方案1】:

这看起来很标准 JSON,所以 Volley 的 JsonObjectRequestJsonArrayRequest 请求类型应该为您解析它。例如:

JsonArrayRequest request = new JsonArrayRequest(
        Request.Method.GET,
        "https://yoururl",
        null,
        new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONArray response) {
                JSONObject msg1 = response.getJSONObject(0);
                String firstName = msg.getString("firstname") // Sam
            }
        },
        new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                // TODO
            }
        }
);

改编自文档的代码示例,此处:https://developer.android.com/training/volley/request#request-json

【讨论】:

    【解决方案2】:

    试试这个

    StringRequest stringRequest = new StringRequest(URL,
                    new Response.Listener<String>() {
                        @Override
                        public void onResponse(String response) {
    
                            try {
                                JSONArray jsonArray1 = new JSONArray(response);
                                for (int i = 0; i < jsonArray1.length(); i++) {
    
                                    JSONObject object = jsonArray1.getJSONObject(i);
    
                                    {
                                        Toast.makeText(this, ""+object.getString("msg")+"\n"+object.getString("id"), Toast.LENGTH_SHORT).show();
    
                                    }
                                }
    
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
    
                        }
                    },
                    new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                            Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_LONG).show();
                        }
                    });
    
            RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
            requestQueue.add(stringRequest);
    

    【讨论】:

    • 如果你有不止一个 JSONObject 你需要循环,否则你直接得到。 JSONObject 对象 = jsonArray1.getJSONObject(0);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-01
    相关资源
    最近更新 更多