有了这段javascript代码,我可以毫无问题地在SpringMVC中发帖。
var oc = {
id: 1,
date: "2016-04-03",
type: "1",
};
$.ajax({
url: "addOC.do",
type: "POST",
contentType: 'application/json',
data: JSON.stringify(oc),
dataType:"json",
success: function(object){
alert();
}
});
现在,OCJava类具有以下结构
public class OC{
private Integer id;
private Date date;
private Person person ;
private String type;
// getters and setters
}
public class Person{
private Integer id;
private String name;
// getters and setters
}
当我尝试做一个像这样的帖子时
var oc = {
id: 1,
date: "2016-04-03",
type: "1",
person: 1,
};
没有调用Person格式化程序。我知道这一点是因为如果序列化oc变量,然后将其发布如下:
var form = "id=1&date="2016-04-03"&type="1"&person=1";
$.ajax({
url: "addOC.do",
type: "POST",
data: form,
dataType:"json",
success: function(object){
alert();
}
});
调用Person格式化程序时没有问题。
如何为Jackson JSON设置格式化程序?
您必须发布嵌套的person对象,如下所示:
var oc = {
id: 1,
date: "2016-04-03",
person: {id:2, name:"name"},
type: "1",
};