zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    java读取ANSI编码或者UTF8编码文件乱码问题解决
    java集合框架(Framework)的性能
    堆排序程序
    Python监控Apache,MySQL
    堆排序和快速排序性能比较
    资源管理命令
    Python监控Apache,MySQL
    资源管理命令
    javap反编译
    浏览器的用户代理字符串
  • 原文地址:https://www.cnblogs.com/kibana/p/11509533.html
Copyright © 2011-2022 走看看