使用Volley在其中使用JSON数组解析JSON对象

时间:2015-05-08 11:33:20

标签: android json android-volley

我有这样的Json响应:

 List<CDR> cdrs = Arrays.stream(files)
                        .parallel()
                        .map(this::readCDR)
                        .collect(Collectors.toList());

上面的JSON响应将通过POST调用获得。在android使用volley库我做了一个REST调用如下:

{
    "status" : "CREATED",
    "message" : "user created",
    "results" : [
        {
            "id" : "1243233",
        }
    ]
}

我收到错误JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST, url, null, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { Log.d("Request", response.toString()); try { response.getString("status"); JSONArray array = response.getJSONArray("results"); JSONObject id = (JSONObject)array.get(0); Toast.makeText(getApplicationContext(),response.getString("status"),Toast.LENGTH_LONG).show(); } catch (JSONException e) { e.printStackTrace(); } pDialog.hide(); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { VolleyLog.d("Request", "Error: " + error.getMessage()); pDialog.hide(); } }){ @Override public Map<String, String> getHeaders() throws AuthFailureError { HashMap<String, String> headers = new HashMap<String, String>(); headers.put("Content-Type", "application/json"); return headers; } @Override protected Map<String, String> getParams() throws AuthFailureError { Map<String, String> params = new HashMap<String, String>(); params.put("phone", phone); params.put("name", username); params.put("pwd",password); params.put("email", email); return params; } }; AppController.getInstance().addToRequestQueue(jsonObjReq);

org.json.JSONException: Expected literal value at character 102 of

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

结果数组的项目中有逗号。这意味着应该有另一个元素(字符串,整数等)作为JSONObject(结果数组的第一项)的一部分。

因此,您收到了JSON解析错误。

    "results" : [
                   {
                     "id" : "1243233",
                    }
                ]

应该是

   "results" : [
                 {
                      "id" : "1243233"
                 }
               ]

删除逗号