最近由於項目結構的調整,對以前的業務數據實體進行了分離,結果遇到了比較奇怪的問題:
使用Gson反序列化字符串后生成的對象,含有null值的字符串,但是該類有默認構造方法對各個字段進行初始化操作的。
EntityIntf iIntf = new Gson().fromJson("{\"RecordCount\":\"3\"}",EntityIntf.class);
public class EntityIntf{
//由於項目需要混淆,故使用了@SerializedName @SerializedName("GetProjListAll") public List<EntityProj> ProjList = new ArrayList<EntityProj>(); @SerializedName("PageNum") public String PageNum; @SerializedName("RecordCount") public String RecordCount; @SerializedName("PageNo") public String PageNo; public EntityIntf(){ ProjList = new ArrayList<EntityProj>(); PageNum = "0"; RecordCount = "0"; PageNo = "0"; } }
結果生成的對象除了 RecordCount外,其余全部為null。
折騰了好久終於找到原因了
Gson在反序列化內部類時會出現此類問題,本人沒有去看Gson的文檔,不知道具體情況,僅此分享下該問題。知道的網友也可以分享下告訴大家。