com.alibaba.fastjson將對象轉爲JSON字符串出現首字母小寫的解決方法

問題簡單描述:使用fastjhson將對象轉爲json字符串出現key首字母小寫的問題

情景再現:

//想要轉爲json的對象object 
Object object = sqlSession.selectOne(mapperType, obj);
//中間其他步驟省略...
//對象轉json字符串
String jsonStr = JSON.toJSONString(object);

轉完後的輸入結果如下:

{
	"nAME": "dailix",
	"pASSWORD": "dbbfc6985712113e43c10a1d069260d19a1c117f",
	"page": {
		"currentPage": 0,
		"currentResult": 0,
		"entityOrField": false,
		"pageStr": "",
		"pd": {},
		"showCount": 15,
		"totalPage": 0,
		"totalResult": 0
	},
	"rOLE_IDS": "",
	"role": {
		"rIGHTS": "686472012592423468028657882539078621399219175426",
		"rOLE_ID": "3",
		"rOLE_NAME": "一級代理"
	},
	"sKIN": "default",
	"uSERNAME": "dailix",
	"uSER_ID": "30000"
}

從上述輸出結果可以的發現,JSON字符串key的首字母出現小寫問題,我們期望是大寫但是fastJson將key首字母自動變成小寫,導致其他處理報錯。

解決方案:

1. 如果你的項目由多個模塊且爲分佈式部署, 則可考慮使用設置System.property

2. 一般只是極少數的代碼出現此情況, 那麼建議直接在你的單例Service初始化時, 在靜態塊中直接改變TypeUtils的變量值, 如果用Spring的話可以使用InitializingBean進行處理

​​​​​​​​​​​​​​TypeUtils.compatibleWithJavaBean = true;

3. 此變量是public的注意要在一個地方進行改動, 避免線程安全問題

參考文章

 

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