因为安全漏洞关系,之前的一个老项目进行了fastjson的jar升级,从1.1.39升级到了1.2.83,出现了如题的错误,具体是fastjson中具体的Serializer出现的write或writeValue()方法出现的错误
以下是代码,是我手打的,如需使用,格式需要调整。
原代码:
Writer writer = new OutputStreamWriter(httpResponse.getOutputStream,Charsets.UTF_8);
writer.write(JSON.toJSONStringWithDateFormat(records, "yyyy/MM/dd HH:mm:ss",
SerializerFeature.QuoteFieldNames,SerializerFeature.SkipTransientField,
SerializerFeature.WriteEnumUsingToString,SerializerFeature.SortField,
SerializerFeature.DisableCircularReferenceDetect,SerializerFeature.WriteDateUseDateFormat));
现代码:
private static SerializeConfig config = new SerializeConfig();
static{
config.put(Date.class,new SimpleDateFormatSerializer("yyyy/MM/dd HH:mm:ss"));
}
Writer writer = new OutputStreamWriter(httpResponse.getOutputStream,Charsets.UTF_8);
writer.write(JSON.toJSONStringWithDateFormat(records, config,"yyyy/MM/dd HH:mm:ss",
SerializerFeature.QuoteFieldNames,SerializerFeature.SkipTransientField,
SerializerFeature.WriteEnumUsingToString,SerializerFeature.SortField,
SerializerFeature.DisableCircularReferenceDetect,SerializerFeature.WriteDateUseDateFormat));