記 fastjson泛型轉對象 第一次可以正常轉,第二次就變成JSONArray 問題

來源:互聯網
上載者:User

標籤:估計   存在   style   ble   對象   還需   reference   解決方案   解決方案   

在解析json資料的時候,在使用泛型對象的時候即:

public class ResultMsgDto<E> implements Serializable {    private static final long serialVersionUID = 123L;    private int resultCode;    private E resultObject;    private String resultMsg;   // get set}

第一次在使用

  ResultMsgDto<List<ArticleDto>> resultMsg = JSON.parseObject(result, new TypeReference<ResultMsgDto<List<ArticleDto>>>() {});

把json字串轉換為 對應泛型對象的時候是可以的,因為我增加一個資料,從伺服器中再次擷取json字元之後,再次調用上面的方法的時候,這次沒有成功,而是JSONArray 類型的資料

之後網上找到瞭解決方法:

1、https://github.com/alibaba/fastjson/issues/569  這裡面有問題 但是已經解決了 這個時候你就要看看你的fastjson的jar包版本,你可以換一個高版本的試試

2、如果換了高版本還是不行的話,那估計你犯了跟我一樣的錯誤

這個時候你就需要查看你的代碼中,有沒有 沒有使用泛型而直接使用ResultMsgDto,例如下面這個錯誤的列子:

  ResultMsgDto resultMsg = JSON.parseObject(result, new TypeReference<ResultMsgDto>() {});

這個時候就要把這語句中的泛型型別加上去,即使你用不著他對於的對象,但是還需要加上泛型

切記:解決方案:統一使用泛型型別,項目中不允許沒有泛型型別的ResultMsgDto,就不會存在這個問題。

 

參考:http://blog.csdn.net/ykdsg/article/details/50432494   感謝這位同學的無私奉獻

 

記 fastjson泛型轉對象 第一次可以正常轉,第二次就變成JSONArray 問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.