fastjson之坑-你可能遇到的各種各樣的奇葩問題
阿新 • • 發佈:2018-12-26
1.fastjson之坑
1.序列化是會多欄位,少欄位
2.有時不能序列化成功
2.原理分析
1.bean中有getXXX方法時,從json到model會增加xxx屬性,有setXXX方法是,從model到json會增加xxx的賦值, 2.在內部類中使用時,不加static變數會不能轉換成功 3.private或protected變數中,缺少get或者set方法會影響轉換,所以而且這些方法中不能有其他的非自動生成的操作,否則這些無關操作也會執行,因為fastjson是通過呼叫set,get方法來序列化的,而不是根據json串實際的轉換,比如:在反序列化時,如果你的get方法中有打log操作,那麼會真的給你打一堆log的 4.這也許說明了fastjson快速的能力是哪裡來的,通過呼叫set,get方法,而不是通過反射,這樣可能帶來資料的錯誤,寫set,get方法的時候就要完全讓自動生成,而不能做其他操作
3.正確且最優的使用方法:
1.所有需要序列化的欄位都用public
2.所有的public方法開頭不允許是get或者set
3.內部類一定要加上public static修飾
4.遵循以上3條,fastjson即可保證極快速又不會發生錯誤