有一個實體類,只想返還一部分字段給前端
方法一
在實體類上加上添加注解@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集合同樣有效