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

方法一

在实体类上加上添加注解@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集合同样有效

12-25 16:01