同一个对象,在不同的场景,返回不同的属性,如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;
}

JsonView视图的更多相关文章

  1. 第一章 JacksonUtil 序列化与反序列化属性总结

    1.json-lib与Jackson 关于json-lib与Jackson对比总结如下: 1).性能方面,Jackson的处理能力高出Json-lib10倍左右. 2).json-lib已经停止更新, ...

  2. jackson annotations注解详解 (zhuan)

    http://blog.csdn.net/sdyy321/article/details/40298081 ************************************** 官方WIKI: ...

  3. Jackson /常用注解/ annotation(转)

    1.@JsonAutoDetect 自动检测,(作用在类上)来开启/禁止自动检测. fieldVisibility:字段的可见级别 ANY:任何级别的字段都可以自动识别 NONE:所有字段都不可以自动 ...

  4. Json --- Jackson工具

    一.Jackson简介 Jackson是一个简单基于Java应用库,Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json.xml转换成Java对象.Jackson ...

  5. 在Spring MVC Controller的同一个方法中,根据App还是WEB返回JSON或者HTML视图。

    如有高见,欢迎交流! 最近在做一个web的项目,web版已经开发完毕,现在正在进行手机APP的开发,开发中遇到一个问题: 就是web版和app版都有登录功能,本想着是分别走不同的URL,实际开发的时候 ...

  6. 1.Flask URL和视图

    1.1.第一个flask程序 from flask import Flask #创建一个Flask对象,传递__name__参数进去 app = Flask(__name__) #url与视图映射 @ ...

  7. flask(一)之路由和视图

    01-介绍 Flask 是一个 Python 实现的 Web 开发微框架,同时具有很强的扩展能力. 02-第一个flask程序 # 初始化 from flask import Flask, url_f ...

  8. 使用@JsonView注解控制返回的Json属性

    我也是刚看到原来还可以这么玩,但是我还是习惯使用Dto,我总感觉这样做的话实体类耦合程度有点高.还是记录以下,万一今后用到了呢 ⒈在实体类中使用接口来声明该实体类的多个视图. ⒉在实体类的属性get方 ...

  9. Spring MVC中@JsonView的使用

    一.@JsonView注解的简介 @JsonView是jackson json中的一个注解,Spring webmvc也支持这个注解,它的作用就是控制输入输出后的json 二.@JsonView注解的 ...

随机推荐

  1. 【问题解决方案】git clone失败的分析和解决

    参考链接 git_clone资源获取失败解决 使用Git clone代码失败的解决方法 [Git] Clone failed 克隆失败的解决方法 问题描述: 无论是git clone还是pull,均失 ...

  2. td内容超出 以…显示

    table中的td内容超出以省略号显示,需满足的条件是: <style type="text/css"> table{ table-layout: fixed; bor ...

  3. 浅谈使用canvas绘制多边形

    本文主要使用坐标轴的使用来绘制多边形,点位则都是在y轴上寻找,这种方法能够更好的理解图形与修改. //id为html里canvas标签的属性id: //x,y为坐标轴的起始位置,因为canvas默认坐 ...

  4. 前端校招知识体系之css

    本文将从以下四个方面展开介绍: 选择器 样式表继承 css3部分特性 BFC css选择器优先级策略 先附上个链接:css选择器参考手册 内联>id>class=属性选择器=伪类选择器&g ...

  5. Java Split()方法按点(.)切分注意细节

    按点(.)切分,必须要注意转义!如:split("\\."). 例子: public class Test { public static void main(String[] a ...

  6. webGL 旋转算法

    lon = 0,//y旋转角度 lat = 0, onMouseDownLat = 0, phi = 0, theta = 0; if ( isUserInteracting === false ) ...

  7. jvm监控和诊断工具

    大牛写的Java的OOM Killer:https://www.jianshu.com/p/4645254be259 强烈推荐 总的参考链接:https://cloud.tencent.com/dev ...

  8. pgtksh -- PostgreSQL Tcl/Tk shell 客户端

    SYNOPSIS pgtksh [filename [argument...]] DESCRIPTION 描述 pgtksh 是一个带有 PostgreSQL 数据库访问函数扩展的 Tcl/Tk sh ...

  9. linux命令中chmod 777 以及drwxr-xr-x分别代表什么意思

    最近跟一个运维人员学了点新东西,感觉以前没怎么注意,但现在感觉很有用,特来记录一下. linux使用==ll==命令列出列表的时候,前面总是有一堆drwxr-xr-x ,这些代表什么意思从来还没有去在 ...

  10. AWD

    扫描对方IP:ifconfig (先获取自己的IP)netdiscover -r 192.168.0.1/24   (扫描1~124的IP) 获取IP后:nmap -sV 192.168.0.104 ...