使用FastJson解析庫的那些事兒

義以爲之,
禮以行之,
遜以出之,
信以誠之,爲做事之順道。
多少好事,因禮不周,言不遜,信不孚,致生障礙者,比比皆是。


FastJson庫的Github地址

fastjson是阿里巴巴推出的開源JSON解析庫,即:解析JSON格式的字符串

  1. Java Bean 序列化爲JSON字符串;
  2. JSON字符串反序列化爲Java Bean;

下面來主要來談一下使用FastJson庫所遇到的問題:

問題1. 序列化Or反序列化的問題

1.1 問題描述:

在開發中,爲了方便往往在生成Java Bean時,採用內部類的形式(具體看下面代碼塊)。接下來就是常規操作:

  1. 序列化:JSON.parseObject(json,Bean.class)
  2. 反序列化:JSON.toJSONString(bean)
public class Car{
	public Engine engine;

	public class Engine{
		public Component component;
		
			public class Component{
				
			}
	}
}

就是這麼簡單的功能,居然出錯了,我承認我太天真啦。
補充一點,出錯的現象各異(同樣是上述的問題):

  1. 網友遇到的大部分是解析異常
  2. 我遇到的居然是StackOverFlow…(可能是fastjson的版本問題)
1.2 解決方案:
  1. 內部類添加static關鍵字即可;
  2. 不嫌麻煩的話,避免內部類即可(都單獨生成一個Bean);

更具體的內容可以參考 fastjson的解析的問題

原因也很實在(But我很不爽):

內部非靜態類無法實例化

問題2. 使用小心+小心

少個get/set方法行不行,不好意思啊

FastJson稍微使用不當就會導致StackOverflow

In a word, 不推薦使用FastJson。『一快遮百醜』.安全漏洞層出不窮…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章