1. 程式人生 > >fastjson序列化資料為空的欄位如何處理的問題

fastjson序列化資料為空的欄位如何處理的問題

背景:今天同事遇到一個問題,介面返回資料的時候空資料欄位的屬性直接被過濾掉了,基於當前問題的解決過程做些手札
解決步驟
1、首先定位問題所在,確定是json資料序列化輸出的時候過濾了屬性值為空的欄位。
2、檢查當前系統原始碼中的json序列化輸出的預設方案是什麼,原始碼在哪。實現方案是什麼樣子的。我們的系統是基於webx的實現的
原始碼定位階段參考了Webx Json輸出原始碼這篇文章

這裡寫圖片描述

這個地方是當前json序列化輸出的位置。被註釋掉的那行程式碼是原生框架中的實現模式,下面那個類是自己重寫的新的json序列化輸出規範的操作類
3、找到問題的原因之後就考慮如何解決當前的問題,首先定位到
String jsonResult = JSON.toJSONString(resultObject);

這段程式碼是序列化的核心。然後我們的解決原則就是尋找可以滿足我們自己的需求的實現,然後替換掉當前的預設程式碼即可
fastjson的序列化可以自定義不同的模式,我們的實現程式碼使用的是以下模式附程式碼

String jsonResult = JSON.toJSONString(resultObject,SerializerFeature.WriteMapNullValue);

到此該問題宣告完滿結束

注:如果我的引用侵犯了您的權益請告知,本文將立即刪除此連結