springboot返回json时自动忽略掉对象属性注解方式
Jackson忽略指定属性
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonIgnore;
public class TestEntity implements Serializable {
private static final long serialVersionUID = 1L;
private String id;
private String name;
@JsonIgnore
private String sex;
// 省略get set
}
FastJson忽略指定属性
import java.io.Serializable;
import com.alibaba.fastjson.annotation.JSONField;
public class TestEntity implements Serializable {
private static final long serialVersionUID = 1L;
private String id;
private String name;
@JSONField(serialize = false)
private String sex;
// 省略get set
}
自定义注解,指定显示属性
实体类
import java.io.Serializable;
import com.dty.vems.common.result.Result.ResponseResult;
import com.fasterxml.jackson.annotation.JsonView;
public class TestEntity implements Serializable {
public interface Result extends ResponseResult {};
@JsonView(Result.class)
private String id;
@JsonView(Result.class)
private String name;
@JsonView(Result.class)
private String sex;
// 省略 get set
}
控制层 – 直接返回json对象
@RequestMapping("test1")
@JsonView(Result.class)
public Result testRest1() {
return Result.success(new TestEntity("id", "name", "sex"));
}
控制层 – 直接返回Model对象
@RequestMapping(path = "/test2")
public String getUser(Model model) {
model.addAttribute("user", new TestEntity("id", "name", "sex"));
model.addAttribute(JsonView.class.getName(), User.WithoutPasswordView.class);
return "testView";
}
注意:如果实体类对象的属性中上添加了Jackson注解、Fastjson注解和自定义注解时,自定义注解会失效
本文由 创作,采用 知识共享署名4.0 国际许可协议进行许可。本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为: 2020/10/16 01:33