解决FastJson 1.2.39的bug


1、日期转换认格式覆盖注解格式的bug;


com.alibaba.fastjson.serializer.JSONSerializer#writeWithFormat

修改后的代码

publicfinalvoidwriteWithFormat(Objectobject,Stringformat){
if(objectinstanceofDate){
DateFormatdateFormat=this.getDateFormat();
if(format!=null){
dateFormat=newSimpleDateFormat(format,locale);
dateFormat.setTimeZone(timeZone);
}
Stringtext=dateFormat.format((Date)object);
out.writeString(text);
return;
}
write(object);
}


2、解决转JSON时候Bean字段认被排序的毛病:

com.alibaba.fastjson.serializer.SerializeWriter#computeFeatures

修改代码

protectedvoidcomputeFeatures(){
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?'\'':'"';
}

相关文章

AJAX是一种基于JavaScript和XML的技术,能够使网页实现异步交...
在网页开发中,我们常常需要通过Ajax从后端获取数据并在页面...
在前端开发中,经常需要循环JSON对象数组进行数据操作。使用...
AJAX(Asynchronous JavaScript and XML)是一种用于创建 We...
AJAX技术被广泛应用于现代Web开发,它可以在无需重新加载页面...
Ajax是一种通过JavaScript和HTTP请求交互的技术,可以实现无...