0
所以我无法读取android volley中onResponse方法给出的JSON数据,这是我的GET代码。如何解析另一个JSONObject内的JSONObject,使用Android Volley进行HTTP连接
private void GetSV(){
final String getURL = "my URL";
JsonObjectRequest getRequest = new JsonObjectRequest(Request.Method.GET, getURL, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Iterator keys = response.keys();
while (keys.hasNext()){
Object key = keys.hasNext();
switch (key.toString()){
case "statusCode":
statusCode = getValue(response, "statusCode");
break;
default:
break;
}
try {
JSONObject data = response.getJSONObject("data");
Iterator innerKeys = data.keys();
while (innerKeys.hasNext()){
Object innerKey = innerKeys.hasNext();
switch (innerKey.toString()){
case "Id":
User.setId(getValue(response, "Id"));
break;
case "firstName":
User.setFirstName(getValue(response, "firstName"));
break;
case "lastName":
User.setLastName(getValue(response, "lastName"));
User.setName(User.getFirstName() + " " + User.getLastName());
name.setText(User.getName());
break;
case "email":
User.setEmail(getValue(response, "email"));
break;
case "school":
User.setCollege(getValue(response, "school"));
college.setText(User.getCollege());
break;
case "fact":
User.setRandom_fact(getValue(response, "fact"));
random_fact.setText(User.getRandom_fact());
break;
case "age":
User.setAge(getValue(response, "age"));
age.setText(User.getAge());
break;
case "major":
User.setMajor(getValue(response, "major"));
major.setText(User.getMajor());
break;
default:
break;
}
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<>();
return params;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(context);
requestQueue.add(getRequest);
}
这是JSONObject结构在服务器上的样子,这是我想要获取和存储的信息。
{"statusCode":"200","message":"User was found.","data":{"Id":"[email protected]","firstName":"Blah","lastName":"Blah","email":"[email protected]","school":"FSU","fact":"","gender":"male","age":"22","major":"Business Marketing","createdAt":"2017-09-21T22:01:33.000Z","updatedAt":"2017-09-22T18:33:28.000Z"}}
我得到了状态码,但我没有收到任何其他字段。这是在另一个JSON解析中执行JSON解析的正确方法吗?如果是的话,这是否是最理想的方式?