解析JSON URL - JSONException错误

时间:2015-05-15 11:37:16

标签: java android json gson android-volley

请你帮我一把,我试图从URL解析一个JSON文件。下面是我用来抓取文件的代码,最初只是将它发布到TextView但现在我想解析标签并使用它们?

Set ... =  Nothing

JSON的一个例子在

之下
private void postData(final String param, final TextView tv) {

    final RequestQueue request = Volley.newRequestQueue(this);

    JSONObject postReq = new JSONObject(Request.Method.GET, url_login, new Response.Listener<JSONObject>() {

        @Override
        public void onResponse(JSONObject response) {

        }
    }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            System.out.println("Error [" + error + "]");

        }
    }) {

        @Override
        public Map getHeaders() throws AuthFailureError {
            Map headers = new HashMap();
            headers.put("Accept", "application/json");
            System.out.println(headers);
            return headers;
        }
    };
    request.add(postReq);
}

我已经尝试了this,但却一直失败,只是无法做到正确。

enter image description here

1 个答案:

答案 0 :(得分:0)

{
    "UserInfo": {
        "User": {
            "name": "Craig",
            "surname": "Churchill",
            "userId": "1463353",
            "userAlias": "Craig"
        }
    }
}

这是一个有效的json。我在http://jsonlint.com/上尝试过但是你有一些带有奇怪编码的双逗号。我把上面的json放在右边的doble逗号中,因为jsonlint在验证json之前给出了错误,直到我更改它们为止。

问题可能在于您如何访问该对象及其儿童。试试这种方式。

@Override
public void onResponse(JSONObject response) {
    try {
        JSONObject userObj = response.getJSONObject("UserInfo")
                            .getJSONObject("User");
        String name = userObj.getString("name");
        ...
    } catch (JSONException jsEx) {
        jsEx.printStackTrace();
    }

}