在 Android studio 中使用 Volley 从 mysql 服务器请求数据

Request data from mysql server using Volley in Android studio

这是我试过的: 数据库在我的本地主机中,我使用的是我自己的 IP。

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

                    try{
                    JSONArray array = new JSONArray(response);

                        for (int x = 0; x<array.length();x++){

                            JSONObject ob = array.getJSONObject(x);

                            Alumnos list = new Alumnos();
                            list.setUsername(ob.getString("username"));
                            list.setJob(ob.getString("job"));
                            list.setAge(ob.getInt("age"));

                            alumnos.add(list);

                        }

                        updateRecycler(alumnos);

                    } catch (Exception e) {
                        e.printStackTrace();
                    }
            }


            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.i("Error: ", error.toString());
        }
    }

    );
    queue.add(stringRequest);
}

我尝试在 Recycler 视图中显示我的结果,但出现下一个错误:

10-03 21:41:28.033 10077-10077/? W/System.err: org.json.JSONException: Value {"result":[{"userid":"1","username":"Luis","job":"developer","age":"23"},{"userid":"2","username":"Alejandro","job":"agronomo","age":"24"},{"userid":"3","username":"Gabriel","job":"Redes","age":"24"}]} of type org.json.JSONObject cannot be converted to JSONArray

我想我可能遗漏了一些非常明显的东西,因为我在 Logcat 中得到了数组。

  1. 您正在接收一个 JSONObject ({})
  2. 您的数据在 JSONArray ([]) 中,即 result 所以使用

JSONObject obj = new JSONObject(response);
JSONArray array = obj.getJSONArray("result");