在开发中,有一个Controller方法,需要查询一个实体类对象,封装成一个json格式返回给页面使用.但在请求时报上面的错误.经排查是因为对象的Date类型和net json的序列化方式不一致.
处理如下.
return JSONObject.fromObject(map, JSONConfigFactory.getYMDConfig()).toString();
其中JSONConfigFactory.getYMDConfig()是一个自定义的常量.里面指定所有Date类型要使用的序列化方式
public static JsonConfig getYMDConfig() {
JsonConfig jc = new JsonConfig();
jc.registerJsonValueProcessor(Date.class, SysCommon.DATE_JSON_PROCESSOR_YMD);
jc.registerJsonValueProcessor(java.sql.Date.class, SysCommon.DATE_JSON_PROCESSOR_YMD);
jc.registerJsonValueProcessor(java.sql.Timestamp.class, SysCommon.DATE_JSON_PROCESSOR_YMD);
jc.registerJsonValueProcessor(BigDecimal.class, BigDecimalValueJsonProcessor.INSTANCE);
return jc;
}