義以爲之,
禮以行之,
遜以出之,
信以誠之,爲做事之順道。
多少好事,因禮不周,言不遜,信不孚,致生障礙者,比比皆是。
fastjson是阿里巴巴推出的開源JSON解析庫,即:解析JSON格式的字符串
- Java Bean 序列化爲JSON字符串;
- JSON字符串反序列化爲Java Bean;
下面來主要來談一下使用FastJson庫所遇到的問題:
問題1. 序列化Or反序列化的問題
1.1 問題描述:
在開發中,爲了方便往往在生成Java Bean時,採用內部類的形式(具體看下面代碼塊)。接下來就是常規操作:
- 序列化:JSON.parseObject(json,Bean.class)
- 反序列化:JSON.toJSONString(bean)
public class Car{
public Engine engine;
public class Engine{
public Component component;
public class Component{
}
}
}
就是這麼簡單的功能,居然出錯了,我承認我太天真啦。
補充一點,出錯的現象各異(同樣是上述的問題):
- 網友遇到的大部分是解析異常
- 我遇到的居然是StackOverFlow…(可能是fastjson的版本問題)
1.2 解決方案:
- 給內部類添加static關鍵字即可;
- 不嫌麻煩的話,避免內部類即可(都單獨生成一個Bean);
更具體的內容可以參考 fastjson的解析的問題
原因也很實在(But我很不爽):
內部非靜態類無法實例化
問題2. 使用小心+小心
少個get/set方法行不行,不好意思啊
FastJson稍微使用不當就會導致StackOverflow
In a word, 不推薦使用FastJson。『一快遮百醜』.安全漏洞層出不窮…