• 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;
    }
  • 相关阅读:
    NOIP2018游记-DAY1
    NOIP2018游记-DAY0
    18.11.7绍一模拟赛
    [SPOJ]SELTEAM
    18.11.5绍一模拟赛
    18.11.2绍一模拟赛
    [模拟赛]世界杯
    [模拟赛]路途
    乘法逆元的研究
    子查询,TOP_N,分页,行转列
  • 原文地址:https://www.cnblogs.com/kibana/p/11509533.html
Copyright © 2020-2023  润新知