我有一个JSON对象,如下所示:
[
{
"usernameid": [
"2",
"7"
],
"phaseid": [
"2",
"7"
],
"weekstartdate": "2014-11-02"
}
]
我尝试在控制器中的POJO中映射此JSON:
public ModelAndView approveTimesheet(@RequestBody ApproveTimesheet timesheet,HttpSession session)
{
logger.info("yes");
}
我的AJAX电话:
$.ajax({
type : 'post',
url : 'PendingTimesheet',
contentType : "application/json; charset=utf-8",
data : JSON.stringify(jsonObj),
success : function(data) {
},
});
POJO课程:
public class ApproveTimesheet
{
private String[] usernameid;
private String[] phaseid;
private String weekstartdate;
//Getters and Setters
}
我收到以下异常
out of START_ARRAY token
at [Source: org.apache.catalina.connector.CoyoteInputStream@7097326d; line: 1, column: 1]
如何在Spring控制器中正确映射上述JSON请求? 任何想法将不胜感激。
答案 0 :(得分:0)
您发送的是 JSON 对象的数组,而不是单个对象。
然后,您的控制器签名应在Collection
注释前面Array
或ApproveTimesheet
@RequestBody
。 (我建议使用数组来避免泛型类型不匹配):
public ModelAndView approveTimesheet(
@RequestBody ApproveTimesheet[] timesheets,
HttpSession session)
{
for(int i = 0; i < timesheets.length; i++)
{
logger.info(timesheets[i]);
}
//...
}