spring-JsonView-过滤你返回的数据

去除你臃肿的前端数据,不仅可以便于前端解析,并且可以减少Android 和IOS 端的闪退次数窝,并且前端更快的对接你的接口窝,这时候JsonView 的作用就来了。

其实spring 对于这个需求。还是有几种方案的。

  1. jsonIgnore 这种不便于拓展,也就是无法满足一些定制的json 返回字段。
  2. jsonView 可以多继承,因此可以定制你的bean,不过写的代码就需要多点了。
    下面我直接给出我参考的地址。并且写下我的使用的心得。
  3. 最实用的link

下面给出我实现的代码。直接贴代码了写出关键点。包括3步。

  1. 创建viewManager 去管理你的JsonView。
  2. 在你的实体里面你需要输出到前端的 加上JsonView 。(jsonView 可以多继承的,首页你可以根据不同的接口返回不同的数据。)
  3. 在你的controller 上打上JsonView 和 RestController 注解即可。
//下面定义一个管理jsonView 的ViewManager 去管理JsonView 。
public class ViewManager{

  public interface   Entity{};

  public interface   EntityWithOther{};

}
//如果我们需要在前端输出 name age 在另外一个接口输出 otherEntity 
public class Entity{

  private int id;

  @JsonView(Entity.class)
  private String name;

  @JsonView(Entity.class)
  private int age;

  @JsonView(EntityWithOther.class)
  private OtherEntity otherEntity;

//ignore  getter setter method 
}
@RestController
public class IndexController{
    @JsonView(Entity.class)
    @RequestMapping(value = "/getArea" ,method = RequestMethod.GET)
    public Object getAreaByCity(@RequestParam Integer cityId){ 
       return areaService.findAreaByCityId(cityId);
    }

  @JsonView(EntityWithOther.class)
    @RequestMapping(value = "/getOther" ,method = RequestMethod.GET)
    public Object getOther(@RequestParam Integer cityId){ 
       return areaService.getOther(cityId);
    }
}

curl your url ,you can see the result what you want ....

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,955评论 25 709
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,382评论 18 399
  • 从高中一路走来,就算不常联系,但却不曾失去彼此的消息。那些一起陪伴着的过去,各自努力奋斗着的现在,还有期待着的...
    安晁阳HMF阅读 1,405评论 0 0
  • 说到咖啡,很多人都可能觉得这个话题有点那么高大上,有点小资。说实话刚开始的时候我也是这么觉着的,但是随着我接触咖啡...
    Mi丝喵阅读 4,130评论 3 2
  • 两组箭步蹲进行下半身热身,左右脚交替进行,12个为一组。 保持大腿与地面垂直,如果膝盖超过脚尖则下蹲过大,掌握好步...
    村头春树derAugenst阅读 1,679评论 0 0

友情链接更多精彩内容