共计 718 个字符,预计需要花费 2 分钟才能阅读完成。
1.前言
前后端分离的时代,Json数据交互很常见,各种Rest接口的后端数据返回结构五花八门,这时候后端接口出现了2大现象:第一种,老夫数据一把梭,数据库结构啥样子,前端就能收到啥样的数据;第二种是每个接口返回都根据需要写个VO,结构分明。这二种方案各有利弊,本文不做探讨,接下来介绍第三种方案。
2.JsonView
Jackson大多数Java后端程序员都知道,用于处理我们数据的序列化和反序列化,Springboot中默认使用它自动帮我们处理了很多工作。但是它还提供了一个功能–那就是JsonView,可以只返回特定的字段,例如
@JsonView(value = {View.Base.class})
private Integer userId;
private String username;
这里我们定义了自己的视图接口Base,接下来只需要在我们的接口方法上添加
@JsonView(value = {View.Base.class})
这样最终序列化后的数据就只有userd,实现了和自定义VO一样的返回值。除此之外JsonView是承认继承/实现的,什么意思呢?假如我现在这么写
@JsonView(value = {View.Base.class})
private Integer userId;
@JsonView(value = {View.Child.class})
private String username;
Child是Base的实现,这时候我们使用
@JsonView(value = {View.Child.class})
修饰接口,你会发现username也返回了,学会了吗。
3.小结
本文简述了JsonView的使用方法,日常一个小技巧,你get到了没
正文完