Exception in thread "main" com.alibaba.fastjson.JSONException: autoType is not support. cn.com.bsfit.frms.obj.AuditResult
github: http://git.oschina.net/wenshao/fastjsonhtml
fastjson 使用手冊,偷點懶,嘿嘿java
http://www.w3cschool.cn/fastjson/fastjson-quickstart.htmlgit
1.普通github
JSON.toJSONString(對象); 或 JSONObject.toJSONString(對象);
2.自定義輸出參數json
a. 直接在實體中屬性中使用註解 bash
@JSONField(serialize=false) //序列化:該字段不輸出 可是若是加了final,這個字段就沒法被過濾 @JSONField(derialize=false) //反序列化:該字段不輸出 可是若是加了final,這個字段就沒法被過濾 @JSONField(format=」yyyy-MM-dd HH:mm」) //日期按照指定格式輸出 @JSONField(name="別名");//使用別名 @JSONField(serialzeFeatures={SerialzeFeatures屬性});//序列化 @JSONField(parseFeatures={Features屬性});//反序列化
@JSONField(format=」yyyy-MM-dd HH:mm」)ui
b. 使用toJSONString 的重載方法,添加 SerializerFeature 參數 自定義輸入spa
SerializerFeature屬性.net
WriteEnumUsingNamecode
名稱 | 含義 | 支持版本 |
---|---|---|
QuoteFieldNames | 輸出key時是否使用雙引號,默認爲true | |
UseSingleQuotes | 使用單引號而不是雙引號,默認爲false | |
WriteMapNullValue | 是否輸出值爲null的字段,默認爲false | |
WriteEnumUsingToString | Enum輸出name()或者original,默認爲false 用枚舉toString()輸出 |
|
WriteEnumUsingToName | 用枚舉name()輸出 | |
UseISO8601DateFormat | Date使用ISO8601格式輸出,默認爲false | |
WriteNullListAsEmpty | List字段若是爲null,輸出爲[],而非null | 1.1 |
WriteNullStringAsEmpty | 字符類型字段若是爲null,輸出爲」「,而非null | 1.1 |
WriteNullNumberAsZero | 數值字段若是爲null,輸出爲0,而非null | 1.1 |
WriteNullBooleanAsFalse | Boolean字段若是爲null,輸出爲false,而非null | 1.1 |
SkipTransientField | 若是是true,類中的Get方法對應的Field是transient ,序列化時將會被忽略。默認爲true |
1.1 |
SortField | 按字段名稱排序後輸出。默認爲false | 1.1 |
WriteTabAsSpecial | 把\t作轉義輸出,默認爲false | 1.1.1 (不推薦) |
PrettyFormat | 結果是否格式化,默認爲false | 1.1.2 |
WriteClassName | 序列化時寫入類型信息,默認爲false。反序列化是需用到 | 1.1.2 |
DisableCircularReferenceDetect | 消除對同一對象循環引用的問題,默認爲false | 1.1.6 |
WriteSlashAsSpecial | 對斜槓’/’進行轉義 | 1.1.9 |
BrowserCompatible | 將中文都會序列化爲\uXXXX格式,字節數會多一些 ,可是能兼容IE 6,默認爲false |
1.1.10 |
WriteDateUseDateFormat | 全局修改日期格式,默認爲false。 |
1.1.14 |
NotWriteRootClassName | 1.1.15 | |
DisableCheckSpecialChar | 一個對象的字符串屬性中若是有特殊字符如雙引號, 將會在轉成json時帶有反斜槓轉移符。若是不須要轉義, 能夠使用這個屬性。默認爲false |
1.1.19 |
BeanToArray | 將對象轉爲array輸出 | 1.1.35 |
WriteNonStringKeyAsString | Map<Integer,Stirng> 輸出 key 默認爲 Integer 添加此屬性,Integer 添加了 「」,變成字符型 |
1.1.37 |
NotWriteDefaultValue | 將基礎類型的默認值屏蔽 | 1.1.42 |
BrowserSecure | 1.2.6 | |
IgnoreNonFieldGetter | 1.2.7 |
修改 fastjson 日期默認日期方式。
JSON.DEFFAULT_DATE_FORMAT = "YYYY-MM-dd HH:mm:ss"; JSON.toJSONString(topic,SerializerFeature.WriteDateUseDateFormat); 或者 JSONObject.toJSONStringWithDateFormat(topic,"YYYY-MM-dd HH:mm:ss")
報錯:
Exception in thread "main" com.alibaba.fastjson.JSONException: autoType is not support. cn.com.bsfit.frms.obj.AuditResult
修改方式:
ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
輸出保持輸入順序:
JSONObject ao = new JSONObject(true);//默認使用 LinkedHashMap JSON.toJSONStringZ(ao,SerializeConfig.getGlobalInstance(),SerializerFeature.WriteMapNullValue,SerializerFeature.QuoteFieldNames);
注意:SerializerFeature.QuoteFieldNames 默認爲true ,方法添加不起做用,緣由不明,彷佛沒法修改默認值true 爲 false。