解决FastJson1.2.39的bug-创新互联
1、日期转换默认格式覆盖注解格式的bug;

com.alibaba.fastjson.serializer.JSONSerializer#writeWithFormat
修改后的代码:
public final void writeWithFormat(Object object, String format) {
if (object instanceof Date) {
DateFormat dateFormat = this.getDateFormat();
if(format!=null){
dateFormat = new SimpleDateFormat(format, locale);
dateFormat.setTimeZone(timeZone);
}
String text = dateFormat.format((Date) object);
out.writeString(text);
return;
}
write(object);
}2、解决转JSON时候Bean字段默认被排序的毛病:
com.alibaba.fastjson.serializer.SerializeWriter#computeFeatures
修改的代码:
protected void computeFeatures() {
quoteFieldNames = (this.features & SerializerFeature.QuoteFieldNames.mask) != 0;
useSingleQuotes = (this.features & SerializerFeature.UseSingleQuotes.mask) != 0;
// sortField = (this.features & SerializerFeature.SortField.mask) != 0;
sortField = false;
disableCircularReferenceDetect = (this.features & SerializerFeature.DisableCircularReferenceDetect.mask) != 0;
beanToArray = (this.features & SerializerFeature.BeanToArray.mask) != 0;
writeNonStringValueAsString = (this.features & SerializerFeature.WriteNonStringValueAsString.mask) != 0;
notWriteDefaultValue = (this.features & SerializerFeature.NotWriteDefaultValue.mask) != 0;
writeEnumUsingName = (this.features & SerializerFeature.WriteEnumUsingName.mask) != 0;
writeEnumUsingToString = (this.features & SerializerFeature.WriteEnumUsingToString.mask) != 0;
writeDirect = quoteFieldNames //
&& (this.features & nonDirectFeautres) == 0 //
&& (beanToArray || writeEnumUsingName)
;
keySeperator = useSingleQuotes ? '\'' : '"';
}另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网站标题:解决FastJson1.2.39的bug-创新互联
URL标题:http://www.jxjierui.cn/article/dcgogd.html


咨询
建站咨询
