1、日期转换默认格式覆盖注解格式的bug;
com.alibaba.fastjson.serializer.JSONSerializer#writeWithFormat
修改后的代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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
修改的代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
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 ?
'\''
:
'"'
;
}
|
本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/1973749,如需转载请自行联系原作者