【问题标题】:Request data from mysql server using Volley in Android studio [duplicate]在Android Studio中使用Volley从mysql服务器请求数据[重复]
【发布时间】:2018-10-04 03:27:37
【问题描述】:

这是我尝试过的: 数据库在我的本地主机中,我使用的是我自己的 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 中获得了数组。

【问题讨论】:

    标签: java android json android-studio android-volley


    【解决方案1】:
    1. 您正在接收一个 JSONObject ({})
    2. 您的数据位于 JSONArray ([]) 中,即result,因此请使用

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

    【讨论】:

    • 非常感谢@Pavneet_Singh 的帮助,这解决了我的问题。就一个问题。有什么办法可以避免解析结果直接从String(result)中获取数据
    • 是的,您可以使用 GSON、Jackson 等解析器,例如 stackoverflow.com/a/15753925/4936904
    • 很高兴能帮上忙,编码愉快!
    猜你喜欢
    • 1970-01-01
    • 2018-09-28
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 2014-09-18
    • 2017-12-17
    • 2022-01-20
    • 1970-01-01
    相关资源
    最近更新 更多