fastJson轉List<實體>


問題

當我們用 fastjson 如下 API 轉成 List<T> 這種類型時,會遇到類型丟失的問題

 

com.alibaba.fastjson.JSON#parseObject(java.lang.String, java.lang.Class<T>)

  

解決方案

String testJSON = "[{\"type\":\"a\"},{\"type\":\"b\"}]";
List<Button> buttons = JSON.parseObject(testJSON, new TypeReference<ArrayList<Button>>() {});

  

 

或者還有一種更通用的轉換方式

 

List<Button> buttons = JSON.parseArray(testJSON, Button.class);

  

更多

同理,這種同樣可以解決 Map 的問題

 
String testMapJSON = "{\"1\":{\"type\":\"a\"},\"2\":{\"type\":\"b\"}}";
Map<String, Button> buttonMap = JSON.parseObject(testMapJSON, new TypeReference<HashMap<String, Button>>() {});

  

如果是嵌套層次中屬性有接口或父類型的,JSON 實際類型需要額外 @type 屬性來指定當前類型,並且要放到 JSON 類字符串的第一行。





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM