#点击图片,报名参与厦门、福州源创会#
这篇文章紧要讲SpringMVC怎么动态的去返回Json数据。在咱们做Web接口开采的时分,常常会碰到这类场景。
“
两个恳求,返回统一个目标,不过须要的返回字段并不类似。如如下场景
SpringMVC默许行使转json框架是jackson。众人也懂得,jackson也许在实体类内加表明,来指定序列化准则,不过那样对比不灵便,不能完成咱们方今想要到达的这类环境。
这篇文章紧要讲的便是经过自界说表明,来更为灵便,细粒化管束json格式的变换。
最后咱们须要完成如下的功效:
jackson编程式过滤字段
jackson中,咱们也许在实体类上加之
JsonFilter表明,而且经过ObjectMapper.setFilterProvider来实行过滤准则的配置。这边浅显引见一下setFilterProvider的行使封装json变换
经过上头的代码,咱们觉察,也许行使setFilterProvider来灵便的管教须要过滤的字段。不过上头的法子再有一些弊病便是,照样要在本来的model上加表明,这边咱们行使ObjectMapper.addMixIn(Class?type,Class?mixinType)法子,这个法子便是讲两个类的表明混杂,让第一个参数的类也许占有第二个参数类的表明。让须要过滤的model和
JsonFilter表明废除耦合咱们以前的Demo也许变为:
自界说
JSON表明咱们须要完成文章初步的那种功效。这边我自界说了一个表明,也许加在法子上,这个表明是用来带领参数给CustomerJsonSerializer.filter法子的,便是某个类的某些字段须要过滤也许包括。
完成SpringMVC的HandlerMethodReturnValueHandler
HandlerMethodReturnValueHandler接口SpringMVC用于管教恳求返回值。看一下这个接口的界说和形色,接口有两个法子supportsReturnType用来判定管教类是不是撑持目下恳求,handleReturnValue便是详细返回逻辑的完成。
咱们通常行使
ResponseBody便是交给RequestResponseBodyMethodProcessor这个类管教的再有咱们返回ModelAndView的时分,是由ModelAndViewMethodReturnValueHandler类管教的
要完成文章初步的功效,我完成了一个JsonReturnHandler类,当法子有
JSON表明的时分,行使该类来管教返回值。经过这些,咱们就也许最后完成如下功效。
恳求/article/{articleId}
恳求article/list
博客源码
以上便是这篇教程的全数实质了。我博客系统的靠山,便是行使的这类方法来自界说返回字段的。
上头这些代码都是为了写教程有必定的精简,完好的也许看github上的源码Blog-End-Json-Serializer序列化的部份