SpringMVC 修改 GsonHttpMessageConverter 的默认Gson配置,解决日期异常的问题

原连接:https://my.oschina.net/unteacher/blog/693292?from=mail-notify

 

异常内容:

org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: 2019-12-19 17:24:10; nested exception is com.google.gson.JsonSyntaxException: 2019-12-19 17:24:10
 at org.springframework.http.converter.json.GsonHttpMessageConverter.readTypeToken(GsonHttpMessageConverter.java:165) ~[spring-web-4.3.18.RELEASE.jar:4.3.18.RELEASE]
 at org.springframework.http.converter.json.GsonHttpMessageConverter.read(GsonHttpMessageConverter.java:123) ~[spring-web-4.3.18.RELEASE.jar:4.3.18.RELEASE]

 

Caused by: com.google.gson.JsonSyntaxException: 2019-12-19 17:24:10
 at com.google.gson.internal.bind.DateTypeAdapter.deserializeToDate(DateTypeAdapter.java:78) ~[gson-2.0.jar:na]
 at com.google.gson.internal.bind.DateTypeAdapter.read(DateTypeAdapter.java:63) ~[gson-2.0.jar:na]
 at com.google.gson.internal.bind.DateTypeAdapter.read(DateTypeAdapter.java:38) ~[gson-2.0.jar:na]

 

 

以下我的实现方案:

通过子类构造重修改GsonHttpMessageConverter的gson对象

package com.its.mmo;

import org.springframework.http.converter.json.GsonHttpMessageConverter;

import com.google.gson.GsonBuilder;
/**
 * SpringMVC 
 * Json转换工具设置
 * @author ALLEN
 *
 */
public class MmoJsonConverter extends GsonHttpMessageConverter{
	public MmoJsonConverter(){
		//更换Gson转换器
		super.setGson(new GsonBuilder()
						.serializeNulls()		//null值属性也需要序列化
						.setDateFormat("yyyy-MM-dd HH:mm:ss") //设置日期转换
						.create());
	}
} 

<!--开启 spring-mvc注解-->
<mvc:annotation-driven>
    <!--设置JSON转换器为Gson-->
    <mvc:message-converters register-defaults="true">
        <bean class="org.springframework.http.converter.StringHttpMessageConverter">
            <property name="supportedMediaTypes">
                <list>
                    <value>text/plain;charset=UTF-8</value>
                    <value>text/html;charset=UTF-8</value>
                </list>
            </property>
        </bean>
        <bean class="com.its.mmo.MmoJsonConverter">
        </bean>
    </mvc:message-converters>
</mvc:annotation-driven>

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值