有一个实体类,只想返还一部分字段给前端

有一个实体类,只想返还一部分字段给前端

方法一

在实体类上加上添加注解@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"
}

方法二

使用对象属性映射框架帮我们自动完成对象属性的映射,常见的有dozerSpring自带的BeanUtils

  1. 使用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);
  1. 使用Spring自带的BeanUtils
BeanUtils.copyProperties(sourceBean, targetBean);

注意:

  1. 需要实体类字段名称相同

  2. 对List集合同样有效

原文地址:https://www.cnblogs.com/lmw97/p/12061806.html