fastJson解析報錯com.alibaba.fastjson.JSONException: create instance error...
今天用fastJson解析報 create instance error的錯誤
認真檢查,bean類內的欄位都和服務端返回的欄位一致,格式都是正確的,為什麼會報錯呢。
在網上找到答案,如果存在內嵌的情況:
比如public class A{
private String haha;
private int gogo;
private B bb;
set和get方法省略。。。。。
public class B{
private String name;
private int price;
}
}
B巢狀在A裡,那麼我們要宣告內嵌類static屬性,如下(這樣問題解決)
public class A{
private String haha;
private int gogo;
private B bb;
set和get方法省略。。。。。
publicstatic class B{
private String name;
private int price;
set和get方法省略。。。。。}
}
原文連結:http://blog.csdn.net/gogolaile/article/details/54631139
------------------------分割線------------------------------------------
根據組裡其他人的分享,這個問題主要是因為Java內部類和巢狀類的實現機制造成的,首先按照Java程式設計思想的說法,靜態的內部類叫做巢狀類,那麼兩者有什麼區別呢?一般的內部類雖然在原始碼中沒有寫,但是編譯後會看到裡面多了一個指向外部類的引用,如果使用內部類進行json序列化,會因為找不到它的外部類而報異常,而巢狀類因為是靜態的,裡面沒有預設的外部類的引用,即使沒有外部類的物件也能夠使用,因此在json轉換的時候不會報錯。