Java 如何在响应中解析JSON

Java 如何在响应中解析JSON,java,android,json,android-volley,Java,Android,Json,Android Volley,我正在使用volley并实现json解析。我正在进行json解析,并在列表视图中显示数据。我已经做了getter setter、singleton类、adapter等,但是在解析的时候我面临着困难,如何解析 { "result": [{ "id": "1", "name": "Prabhat", "email": "prabhat@gmail.com" }, { "id": "2", "name": "Apurva", "email": "apu@

我正在使用volley并实现json解析。我正在进行json解析,并在列表视图中显示数据。我已经做了getter setter、singleton类、adapter等,但是在解析的时候我面临着困难,如何解析

{
"result": [{
    "id": "1",
    "name": "Prabhat",
    "email": "prabhat@gmail.com"
}, {
    "id": "2",
    "name": "Apurva",
    "email": "apu@gmail.com"
}, {
    "id": "3",
    "name": "sunny",
    "email": "sunny@mail.com"
}, {
    "id": "4",
    "name": "Creation InfoTech",
    "email": "creation@gmail.com"
}, {
    "id": "5",
    "name": "Sanjay Mishra",
    "email": "sanju19@gmail.com"
}]
}

我的java代码是


**面对解析的困难,请在浏览列表之前回复**

,您首先需要获得JSONArray:

JSONArray数组=response.getJSONArrayresult

然后在阵列中漫游:


对于int i=0;i<数组长度;i++{…}

试试看,这段代码将帮助您将数据读入两个字符串数组,然后您可以对它们执行任何操作

JsonObjectRequest request = new JsonObjectRequest(url_Array, new JSONObject(), new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
        JSONArray jsonArray = jsnobject.getJSONArray("result");
        String[] name=new String[jsonArray.length()];
        String[] email=new String[jsonArray.length()];
            for (int i = 0; i < jsonArray.length(); i++) {
                try {
                    Log.d(TAG, "working");
                    JSONObject student=jsonArray.getJSONObject(i);
                    name[i]=student.getString("name");
                    email[i]=student.getString("email");
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
            adapter.notifyDataSetChanged();
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText(getApplicationContext(), "Something not ok", Toast.LENGTH_SHORT).show();
        }
    });    AppController.getInstance(getApplicationContext()).AddtoRequestQueue(request);

}

面临解析困难。我们该怎么办?这是什么意思?您是否收到错误?是的,我在响应中遇到错误。您收到了什么错误,或者希望得到什么结果?只需创建适当的模型并使用Gson lib进行反序列化。它仅在列表视图的第一行显示数据,其余4行数据不显示
JsonObjectRequest request = new JsonObjectRequest(url_Array, new JSONObject(), new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
        JSONArray jsonArray = jsnobject.getJSONArray("result");
        String[] name=new String[jsonArray.length()];
        String[] email=new String[jsonArray.length()];
            for (int i = 0; i < jsonArray.length(); i++) {
                try {
                    Log.d(TAG, "working");
                    JSONObject student=jsonArray.getJSONObject(i);
                    name[i]=student.getString("name");
                    email[i]=student.getString("email");
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
            adapter.notifyDataSetChanged();
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText(getApplicationContext(), "Something not ok", Toast.LENGTH_SHORT).show();
        }
    });    AppController.getInstance(getApplicationContext()).AddtoRequestQueue(request);

}