原连接: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>