Spring Boot 2.0 + FastJson 1.2.+作为JSON序列化

SpringBoot配置FastJson的时候,报错:

1java.lang.IllegalArgumentException: Content-Type cannot contain wildcard type '*' 2 at org.springframework.util.Assert.isTrue(Assert.java:116) ~[spring-core-5.0.13.RELEASE.jar!/:5.0.13.RELEASE] 3 at org.springframework.http.HttpHeaders.setContentType(HttpHeaders.java:861) ~[spring-web-5.0.13.RELEASE.jar!/:5.0.13.RELEASE] 4 at org.springframework.http.converter.AbstractHttpMessageConverter.addDefaultHeaders(AbstractHttpMessageConverter.java:255) ~[spring-web-5.0.13.RELEASE.jar!/:5.0.13.RELEASE] 5 at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:210) ~[spring-web-5.0.13.RELEASE.jar!/:5.0.13.RELEASE] 6 at com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter.write(FastJsonHttpMessageConverter.java:244) ~[fastjson-1.2.57.jar!/:?] 7

看FastJson初始化:

1public static final MediaType ALL = valueOf("*/*"); 2public FastJsonHttpMessageConverter() { 3 super(MediaType.ALL); // */* 4}

看来不能有通配符,所以需要像下面配置:

1@Bean 2public HttpMessageConverters fastJsonHttpMessageConverters() { 3 //创建FastJson信息转换对象 4 FastJsonHttpMessageConverter fastJsonHttpMessageConverter = 5 new FastJsonHttpMessageConverter(); 6 7 List<MediaType> supportedMediaTypes = Lists.newArrayList(); 8 //从1.1.41升级到1.2.之后的版本必须配置,否则会报错 9 supportedMediaTypes.add(MediaType.APPLICATION_JSON); 10 supportedMediaTypes.add(MediaType.APPLICATION_JSON_UTF8); 11 fastJsonHttpMessageConverter.setSupportedMediaTypes(supportedMediaTypes); 12 13 //创建FastJson对象并设定序列化规则 14 FastJsonConfig fastJsonConfig = new FastJsonConfig(); 15 //添加自定义valueFilter 16 //规则赋予转换对象 17 fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig); 18 StringHttpMessageConverter stringHttpMessageConverter = 19 new StringHttpMessageConverter(Charset.defaultCharset()); 20 21 fastJsonConfig.setSerializerFeatures( 22 //消除对同一对象循环引用的问题,默认为false(如果不配置有可能会进入死循环) 23 SerializerFeature.DisableCircularReferenceDetect, 24 //是否输出值为null的字段,默认为false 25 SerializerFeature.WriteMapNullValue 26 ); 27 28 return new HttpMessageConverters(fastJsonHttpMessageConverter, stringHttpMessageConverter); 29}
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java将前端的json数组字符串转换为列表

记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang

Spring Boot 2.0 + FastJson 1.2.+作为JSON序列化 - HelloWorld