请你帮我一把,我试图从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,但却一直失败,只是无法做到正确。
答案 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();
}
}