您的位置:首页 > 编程语言 > Java开发

springboot 集成fastjson 以及处理Date和json数据的转换

2019-07-05 16:08 1236 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_25811101/article/details/94738988

springboot 集成fastjson 以及处理Date和json数据的转换

1.引入fastjson

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.32</version>
</dependency>

2.写一个配置类,在配置类中设置fastjson的规则

@Configuration
public class HttpConverterConfig{
@Bean
public HttpMessageConverters fastJsonConfigure(){
// 1.需要先定义一个convert 转换消息的对象
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
// 2.添加fastJson的配置信息,比如,是否需要格式化返回的json数据
FastJsonConfig fastJsonConfig = new FastJsonConfig();
// 空值特别处理
// WriteNullListAsEmpty 将Collection类型字段的字段空值输出为[]
// WriteNullStringAsEmpty 将字符串类型字段的空值输出为空字符串 ""
// WriteNullNumberAsZero 将数值类型字段的空值输出为0
// WriteNullBooleanAsFalse 将Boolean类型字段的空值输出为false
// DisableCircularReferenceDetect 消除对同一对象循环引用的问题,默认为false(如果不配置有可能会进入死循环)
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat, SerializerFeature.WriteNullListAsEmpty,
SerializerFeature.DisableCircularReferenceDetect,
SerializerFeature.WriteNullStringAsEmpty);
//日期格式化
//        fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
// 处理中文乱码问题
List<MediaType> fastMediaTypes = new ArrayList<>();
fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
fastConverter.setSupportedMediaTypes(fastMediaTypes);
// 3.在convert中添加配置信息
fastConverter.setFastJsonConfig(fastJsonConfig);
return new HttpMessageConverters(fastConverter);
}
}

Date类型数据转化有两种方式:
第一种就是在配置类中直接定义日期格式(全局统一一种格式时推荐使用)
fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
第二种在字段上进行注解(灵活性大,可根据情况不同字段设置不同的时间格式)
@DateTimeFormat( pattern = "yyyy-MM-dd HH:mm:ss" )  **注:若不加这个,从页面往后台传值时会报错**
@JSONField(format="yyyy-MM-dd HH:mm:ss")
private Date inTime;

3.测试代码:

@RequestMapping("/addUserTest")
@ResponseBody
public List<UserInfoDomain> addUserTest(){
List<UserInfoDomain> list = new ArrayList<UserInfoDomain>();
for (int i = 0; i < 5; i++) {
UserInfoDomain userInfoDomain = new UserInfoDomain();
userInfoDomain.setUserId(JavaTools.getUUid());
userInfoDomain.setPhone("132616888"+(i<10?"0"+i:i));
userInfoDomain.setStatus(i/2==0?"02":"01");
userInfoDomain.setDepartment("666"+(i<10?"0"+i:i));
userInfoDomain.setEmail("888888@qq.com");
userInfoDomain.setRealName("王五"+(i<10?"0"+i:i));
userInfoDomain.setUsername("username"+(i<10?"0"+i:i));
userInfoDomain.setPassword("8888"+(i<10?"0"+i:i));
userInfoDomain.setSex(i/3==0?"02":"01");
userInfoDomain.setInTime(new Date());
//            int n = userInfoService.insert(userInfoDomain);
list.add(userInfoDomain);
}
return list;
}

测试结果:
[{"userId":"60a1dd97ef124b7589658f0f9586dd25","username":"username00","password":"888800","phone":"13261683600","sex":"02","email":"736981331@qq.com","inTime":"2019-07-05T07:55:40.673+0000","status":"02","department":"66600","realName":"王五00"},
{"userId":"cf6137a0505740ee8035caac7609ce52","username":"username01","password":"888801","phone":"13261683601","sex":"02","email":"736981331@qq.com","inTime":"2019-07-05T07:55:40.673+0000","status":"02","department":"66601","realName":"王五01"},
{"userId":"416e5c59e80841ecb23b07799c322f33","username":"username02","password":"888802","phone":"13261683602","sex":"02","email":"736981331@qq.com","inTime":"2019-07-05T07:55:40.673+0000","status":"01","department":"66602","realName":"王五02"},
{"userId":"e743950bb2ca42a1b4cfef4346df9392","username":"username03","password":"888803","phone":"13261683603","sex":"01","email":"736981331@qq.com","inTime":"2019-07-05T07:55:40.673+0000","status":"01","department":"66603","realName":"王五03"},
{"userId":"dc9be733cee840b0a38941599723ebb2","username":"username04","password":"888804","phone":"13261683604","sex":"01","email":"736981331@qq.com","inTime":"2019-07-05T07:55:40.673+0000","status":"01","department":"66604","realName":"王五04"}]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: