有一个实体类,只想返还一部分字段给前端
方法一
在实体类上加上添加注解@JsonIgnoreProperties({"value1","value2"})
(jackson的注解)
示例实体类
@JsonIgnoreProperties({"value5","value6"})
public class TestJacksonAnnotationBean {
private String value1;
private String value2;
private String value3;
private String value4;
private String value5;
private String value6;
// get、set方法
}
会返回如下数据格式
{
"value1":"a",
"value2":"b",
"value3":"c",
"value4":"d"
}
方法二
使用对象属性映射框架帮我们自动完成对象属性的映射,常见的有dozer
、Spring
自带的BeanUtils
。
- 使用
dozer
数据源实体类
public class TestJacksonAnnotationBean {
private String value1;
private String value2;
private String value3;
private String value4;
private String value5;
private String value6;
// get、set方法
}
新建一个实体类TestJacksonAnnotationBeanRes
用来存储你想要返回的字段,例如
public class TestJacksonAnnotationBeanRes {
private String value1;
private String value2;
private String value3;
private String value4;
// get、set方法
}
接着使用dozer
来帮我们完成实体类属性的自动映射
TestJacksonAnnotationBeanRes target = mapper.map(sourceBean, TestJacksonAnnotationBeanRes.class);
- 使用
Spring
自带的BeanUtils
BeanUtils.copyProperties(sourceBean, targetBean);
注意:
-
需要实体类字段名称相同
-
对List集合同样有效