龙空技术网

SpringMVC返回json格式解析及自定义

BeginCode 3040

前言:

眼前你们对“mvc json”可能比较注重,大家都想要知道一些“mvc json”的相关文章。那么小编同时在网摘上汇集了一些对于“mvc json””的相关文章,希望同学们能喜欢,我们一起来学习一下吧!

背景

上一篇介绍了表单参数转换为bean的常用配置和自定义转换器,但是当我们使用Spring+SpringMVC+Mybatis来构建系统时,另外一个问题就是接口返回json数据的格式问题,

问题

对于返回Json数据时,Spring仍然给我们提供了一些常用的json转换支持,如时间,日期的格式转换,但是当我们自定义的类想要按照我们想要的格式返回json则需要自定义转换器了。

相关文档

还是那句话,官网是最好的学习技术的地方

解决办法

1、Spring常用的Json数据返回配置

Spring配置文件,增加Json解析,objectMapper是增加的对日期类型的对象的反序列化样式

SpringMVC配置Json解析ResponseBody

Controller方法增加@ResponseBody注解

Json格式响应注解

请求查看,Date类型被反序列化年月日的样式

2、Spring自定义Json反序列化

上一篇我们自定义一个类TIme,用来保存时:分:秒,当我们需要返回一个对象,包含这个Time类型。如下

需要json格式返回的对象

看下未处理前的请求返回值,time以三个字段进行了展示,没有按照我们想要的 18:28:25显示

time以一个对象的三个字段方式进行了展示

此时需要自定义序列化方式,只要继承JsonSerializer<Time> ;Time为你要转换的类,然后重写Serializer方法即可。

自定义Json序列化

time.toString()方法为我们在Time类里面的toString()方法,详情如下,其实就是按照你想要的格式返回字符串即可

Time的toString方法

在有Time对象的类中的get方法,增加指定序列化的注解即可@JsonSerialize

指定序列化注解

再次访问地址看看返回值,按照我们预先设置的格式显示了,

自定义序列化返回

ok,自定义json返回值设置完成,其他细节还需要大家继续阅读官方文档,感谢支持

BeginCode出品

标签: #mvc json