@RequestBody忽略不认识的属性

原创
2018/11/29 11:11
阅读数 69

有一种情况是,一个对象,要通过ajax传到后台。但是前台的对象属性,比后台的类要多一些。这种情况下,服务器会报错,在前端组装出后台的类的对象,以及传一个Map到后台,然后再组装成类,都不是特别优雅。这种情况下,就可以使用jackson提供的注解,@JsonIgnoreProperties了。

在类上面添加@JsonIgnoreProperties(ignoreUnknown = true)即可忽略类中不存在的属性。

/JS代码
var camera = {
    cid : "cid",
    moreProperties : "more"
}
  
$.ajax({
    url : basePath + "camera/deleteCamera",
    type :"POST",
    dataType : "json",
    contentType : "application/json",
    data : JSON.stringify(camera)
});
  
//controller代码
……
public String deleteCamera(@RequestBody Camera camera){
……
  
// moreProperties 属性不是Camera的属性,这样请求会报400,The request sent by the client was syntactically incorrect.
public class Camera{
    private String cid;
    //其他略
}
  
// 加上JsonIgnoreProperties注解之后,请求成功,服务器成功忽略了moreProperties 属性
@JsonIgnoreProperties(ignoreUnknown = true)
public class Camera{
    private String cid;
    //其他略
}
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部