如何在 JSONArray 响应中返回哈希映射



我想从JSONArray Response之外访问HashMap中的电子邮件电话。我该怎么做?

我尝试制作全局变量并为它们赋值。它没有用。

    JsonArrayRequest request1 = new JsonArrayRequest(Request.Method.GET,
            url,
            null,
            new Response.Listener<JSONArray>() {
                @Override
                public void onResponse(JSONArray response) {
                    List<HashMap<String, String>> list = new ArrayList<>();
                    for (int i = 0; i < response.length(); i++) {
                        try {
                            JSONObject obj = response.getJSONObject(i);
                            HashMap<String, String> map = new HashMap();
                            map.put("email", obj.getString("email"));
                            map.put("phone", obj.getString("phone"));
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Toast.makeText(HomeActivity.this, "Error"+error, Toast.LENGTH_SHORT).show();
                }
            });

类中声明HashMap<String, String> map = new HashMap();

并在您的JsonArrayRequest中使用它

@Override
                public void onResponse(JSONArray response) {
                    List<HashMap<String, String>> list = new ArrayList<>();
                    for (int i = 0; i < response.length(); i++) {
                        try {
                            JSONObject obj = response.getJSONObject(i);                              
                            map.put("email", obj.getString("email"));
                            map.put("phone", obj.getString("phone"));
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }

最新更新