【发布时间】:2016-10-12 03:05:29
【问题描述】:
我正在使用 Spring MVC 并尝试从我的控制器返回一个 JSONObject 作为响应。我用 @ResponseBody 注释了该方法,以便它将控制器返回的 JSONObject 放入 ResponseBody。 这是我的控制器:
@GetMapping(value="/student/{roll}",produces="application/json")
@ResponseBody
private JSONObject getStudentDetails(@PathVariable(value="roll") String roll) {
JSONObject response = new JSONObject();
Student student = studentDAO.getStudent(roll);
response.put("firstName",student.getFirstName());
response.put("lastName",student.getLastName());
response.put("roll",student.getRoll());
response.put("email",student.getEmail());
response.put("course",student.getCourse());
response.put("stream",student.getStream());
response.put("year",student.getYear());
response.put("gender",student.getGender());
String date = null;
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
date = String.valueOf(df.parse(student.getSignUpDate()).getTime());
} catch (ParseException e) {
e.printStackTrace();
}
response.put("signUpDate", date);
System.out.println("Response Body::::: "+response.toString());
return response;
}
一个有效的响应应该是这样的:
{
"firstName": "John",
"lastName": "Doe",
"gender": "M",
"stream": "cse",
"year": 3,
"roll": "2013BT2011",
"course": "btech",
"signUpDate": "1476224877000",
"email": "john@doe.com"
}
但我得到了这个:
{
"map": {
"firstName": "John",
"lastName": "Doe",
"gender": "M",
"stream": "cse",
"year": 3,
"roll": "2013BT2011",
"course": "btech",
"signUpDate": "1476224877000",
"email": "john@doe.com"
}
}
这里,我的控制器返回的对象被包装成一个map对象,然后由Spring返回。
谁能告诉我这里出了什么问题。 任何帮助,将不胜感激。 :)
【问题讨论】:
-
返校生会好的 ;)