fastjson Features 说明
/**
?*?這個特性,決定了解析器是否將自動關閉那些不屬于parser自己的輸入源。?如果禁止,則調用應用不得不分別去關閉那些被用來創建parser的基礎輸入流InputStream和reader;如果允許,parser只要自己需要獲取closed方法(當遇到輸入流結束,或者parser自己調用JsonParder#close方法),就會處理流關閉。
?*?注意:這個屬性默認是true,即允許自動關閉流
*/
AutoCloseSource
?
/**
?*?該特性決定parser將是否允許解析使用Java/C++?樣式的注釋(包括'/'+'*'?和'//'?變量)。?由于JSON標準說明書上面沒有提到注釋是否是合法的組成,所以這是一個非標準的特性;盡管如此,這個特性還是被廣泛地使用。
?*?注意:該屬性默認是false,因此必須顯式允許,即通過JsonParser.Feature.ALLOW_COMMENTS?配置為true。
*/
AllowComment
?
/**
?*?這個特性決定parser是否將允許使用非雙引號屬性名字,?(這種形式在Javascript中被允許,但是JSON標準說明書中沒有)。
?*?注意:由于JSON標準上需要為屬性名稱使用雙引號,所以這也是一個非標準特性,默認是false的。
?*?同樣,需要設置JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES為true,打開該特性。
*/
AllowUnQuotedFieldNames
?
/**
?*?該特性決定parser是否允許單引號來包住屬性名稱和字符串值。
?*?注意:默認下,該屬性也是關閉的。需要設置JsonParser.Feature.ALLOW_SINGLE_QUOTES為true
*/
AllowSingleQuotes
?
/**
?*?該特性決定JSON對象屬性名稱是否可以被String#intern?規范化表示。如果允許,則JSON所有的屬性名將會?intern()?;如果不設置,則不會規范化,默認下,該屬性是開放的。此外,必須設置CANONICALIZE_FIELD_NAMES為true
?*?關于intern方法作用:當調用?intern?方法時,如果池已經包含一個等于此?String?對象的字符串?(該對象由?equals(Object)?方法確定),則返回池中的字符串。否則,將此?String
?*?對象添加到池中,?并且返回此?String?對象的引用。
?*/
InternFieldNames
?
//這個設置為true則遇到字符串符合ISO8601格式的日期時,會直接轉換成日期類。
AllowISO8601DateFormat
?
//允許多重逗號,如果設為true,則遇到多個逗號會直接跳過;
AllowArbitraryCommas
?
//這個設置為true則用BigDecimal類來裝載數字,否則用的是double;
UseBigDecimal
?
//忽略不匹配
IgnoreNotMatch
?
//如果你用fastjson序列化的文本,輸出的結果是按照fieldName排序輸出的,parser時也能利用這個順序進行優化讀取。這種情況下,parser能夠獲得非常好的性能
SortFeidFastMatch
?
//禁用ASM
DisableASM
?
//禁用循環引用檢測
DisableCircularReferenceDetect
?
//對于沒有值得字符串屬性設置為空串
InitStringFieldAsEmpty
?
//支持數組to對象
SupportArrayToBean
?
//屬性保持原來的順序
OrderedField
?
//禁用特殊字符檢查
DisableSpecialKeyDetect
?
//使用對象數組
UseObjectArray;
總結
以上是生活随笔為你收集整理的fastjson Features 说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TCP三次握手原理
- 下一篇: Java架构经验总结