[英]How to process the json to normal class object?
我正在使用带参数的JsonObjectRequest进行post请求(来自模型类)。 看起来像,
SignUpRequest registrationRequest = new SignUpRequest();
registrationRequest.setFirstName("fdffdfd");
registrationRequest.setLastName("bbbbbb");
registrationRequest.setEmail("Testing@kjkjgmail.com");
registrationRequest.setDateOfBirth("1991-5-21");
Gson gson = new Gson();
String jsonString = gson.toJson(registrationRequest);
JSONObject parameters = null;
try {
parameters = new JSONObject(jsonString);
} catch (JSONException e) {
e.printStackTrace();
}
JsonObjectRequest postRequest = new JsonObjectRequest(Request.Method.POST, uri, parameters,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.v("MainActivity", "In response :");
updateDisplayRegistration(response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("MainActivity", "In failure :");
error.printStackTrace();
}
});
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(postRequest);
SignUpRequest类我有setter和getter方法。 就像响应的方式一样,我也有RegistrationInfo类,它具有响应对象的setter和getter。
现在问题是如何处理响应以将其作为RegistrationInfo类对象。
protected void updateDisplayRegistration(JSONObject json){
RegistrationInfo regInfo = new RegistrationInfo(json.toString());
Log.v("MainActivity","registered email is ::::: ---- ::: " + regInfo.getEmail());
}
但它返回null。 即使我直接尝试使用json对象,它也没有返回任何值。
比如, json.getString("email");
我怎么处理响应?
有一个现有的库Gson(有点特定的com.google.Gson),它可以用来将JsonObject转换为java bean。 你可以这样做
RegistrationInfo regInfo = new GSON(json.toString(),RegistrationInfo.class);
Gson库使用反射方法在内部将JSON字符串转换为Java bean。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.