JsonView视图

同一个对象,在不同的场景,返回不同的属性,如getUserById返回User对象包含password值,而getAllUsers返回User集合,不包含password值(通过接口查看显示,序列化的时候直接忽略该属性,而非返回null),这些场景称为视图,使用JsonView:
三个步骤:
1.通过在对象中定义多个接口来定义多个视图(场景),注:子接口会把继承的父接口展示的属性也展示
2.在属性的get方法上指明视图(场景)
3.在controller方法上指定视图(场景)
package com.example.security.entity ;
import com.fasterxml.jackson.annotation. JsonView ;
public class User {
/**
* 步骤1
*/
public interface UsernameView {}
public interface UsernamePasswordView extends UsernameView {}
private String username ;
private String password ;
/**
* 步骤2
* @return
*/
@JsonView (UsernameView. class )
public String getUsername () {
return username ;
}
public void setUsername (String username) {
this . username = username ;
}
/**
* 步骤2
* @return
*/
@JsonView (UsernamePasswordView. class ) //子接口会展示自己注解的属性和其父接口注解的属性
public String getPassword () {
return password ;
}
public void setPassword (String password) {
this . password = password ;
}
}
/**
* 步骤3
* @return
*/
@RequestMapping ( "/users" )
@JsonView (User.UsernameView. class )
public List<User> users () {
return Arrays. asList ( new User( "wzs" , "923286" ) ,
new User( "wmm" , "mm615678" ) ,
new User( "root" , "iMC123" )) ;
}
@GetMapping ( "/user" )
@JsonView (User.UsernamePasswordView. class )
public User user (User user) {
return user ;
}

转载于:https://www.cnblogs.com/kibana/p/11509533.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值