最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決fastjson泛型轉(zhuǎn)換報錯的解決方法

 更新時間:2020年11月23日 09:53:02   作者:曠野歷程  
這篇文章主要介紹了解決fastjson泛型轉(zhuǎn)換報錯的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

錯誤信息

Exception in thread "main" java.lang.ClassCastException: com.alibaba.fastjson.JSONObject cannot be cast to com.xh.demo.UserDO

泛性類

@Data
public class ResultSetDTO<T> {
  private Integer totalSize;
  private Integer count;
  private List<T> records;
}

實體類

@Data
public class UserDO {

  private String id;
  private String name;
}

Demo測試

public class AppDemo {

  public static void main(String[] args) {
    ResultSetDTO<UserDO> resultSetDTO = new ResultSetDTO<UserDO>();
    resultSetDTO.setTotalSize(10);
    resultSetDTO.setCount(10);

    List<UserDO> list = new ArrayList<>();
    UserDO userDO = null;
    for (int i = 10000; i < 10003; i++) {
      userDO = new UserDO();
      userDO.setId(i + "");
      userDO.setName("TEST_" + i);
      list.add(userDO);
    }
    resultSetDTO.setRecords(list);

    String jsonString = JSON.toJSONString(resultSetDTO);
    System.out.println(jsonString);
    
    ResultSetDTO<XsyUserDO> resultSet = JSON.parseObject(jsonString, ResultSetDTO.class);
    List<UserDO> records = resultSet.getRecords();
    // 轉(zhuǎn)換是報異常
    for (UserDO user : records) {
      System.out.println(user.getName());
    }
  }

debuge 調(diào)試時發(fā)現(xiàn) resultSet.getRecords(); 返回的是 ArrayList<JSONObject> 類型,不是 ArrayList<UserDO> 類型。由于類型引用必須強制指定目標對象,因此違背了 FastJson 規(guī)范,所以報:Exception in thread "main" java.lang.ClassCastException: com.alibaba.fastjson.JSONObject cannot be cast to com.xh.demo.UserDO。

在這里插入圖片描述

解決方法

// 方法一
JSONObject parseObject = JSON.parseObject(jsonString);
List<UserDO> records = JSON.parseArray(parseObject.getString("records"), UserDO.class);
for (UserDO user : records) {
  System.out.println(user.getName());
}

// 方法二
ResultSetDTO<XsyUserDO> resultSet = JSON.parseObject(jsonString, ResultSetDTO.class);
List<UserDO> records = JSONObject.parseArray(resultSet.getRecords().toString(), UserDO.class);
for (UserDO user : records) {
  System.out.println(user.getName());
}

// 方法三
ResultSetDTO<XsyUserDO> resultSet = JSON.parseObject(jsonString, new TypeReference<ResultSetDTO<UserDO>>(){});
List<UserDO> records = resultSet.getRecords();
for (UserDO user : records){
  System.out.println(user.getName());}
}

到此這篇關(guān)于解決fastjson泛型轉(zhuǎn)換報錯的解決方法的文章就介紹到這了,更多相關(guān)fastjson 泛型轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Spring系列之@ComponentScan批量注冊bean

    詳解Spring系列之@ComponentScan批量注冊bean

    本文介紹各種@ComponentScan批量掃描注冊bean的基本使用以及進階用法和@Componet及其衍生注解使用,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2022-02-02
  • Java實現(xiàn)批量修改文件名和重命名的方法

    Java實現(xiàn)批量修改文件名和重命名的方法

    這篇文章主要介紹了Java實現(xiàn)批量修改文件名和重命名的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • sharding-jdbc5.0.0實現(xiàn)分表實踐

    sharding-jdbc5.0.0實現(xiàn)分表實踐

    本文主要介紹了sharding-jdbc5.0.0分表實踐,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 舉例說明JAVA調(diào)用第三方接口的GET/POST/PUT請求方式

    舉例說明JAVA調(diào)用第三方接口的GET/POST/PUT請求方式

    在日常工作和學(xué)習(xí)中,有很多地方都需要發(fā)送請求,這篇文章主要給大家介紹了關(guān)于JAVA調(diào)用第三方接口的GET/POST/PUT請求方式的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-01-01
  • Java輕松實現(xiàn)權(quán)限認證管理的示例代碼

    Java輕松實現(xiàn)權(quán)限認證管理的示例代碼

    我們在實際開發(fā)中經(jīng)常會進行權(quán)限認證管理,給不同的人加上對應(yīng)的角色和權(quán)限,本文將實現(xiàn)一個簡易的權(quán)限驗證管理系統(tǒng),感興趣的小伙伴可以了解下
    2023-12-12
  • Spring Data Jpa+SpringMVC+Jquery.pagination.js實現(xiàn)分頁示例

    Spring Data Jpa+SpringMVC+Jquery.pagination.js實現(xiàn)分頁示例

    本文介紹了Spring Data Jpa+SpringMVC+Jquery.pagination.js實現(xiàn)分頁示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Java異常鏈表throw結(jié)構(gòu)assert詳細解讀

    Java異常鏈表throw結(jié)構(gòu)assert詳細解讀

    這篇文章主要給大家介紹了關(guān)于Java中方法使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • 基于Spring-Security自定義登陸錯誤提示信息

    基于Spring-Security自定義登陸錯誤提示信息

    這篇文章主要介紹了Spring-Security自定義登陸錯誤提示信息,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 基于java中子類的繼承性的應(yīng)用介紹

    基于java中子類的繼承性的應(yīng)用介紹

    本篇介紹了,基于java中子類的繼承性的應(yīng)用。需要的朋友參考下
    2013-05-05
  • redis.clients.jedis.exceptions.JedisAskDataException異常解決

    redis.clients.jedis.exceptions.JedisAskDataException異常解決

    redis.clients.jedis.exceptions.JedisAskDataExceptio異常是在使用Jedis客戶端與Redis集群交互時遇到的一種重定向異常,本文就來介紹一下解決方法,感興趣的可以了解一下
    2024-05-05

最新評論

太原市| 收藏| 舒兰市| 祥云县| 翁源县| 汉源县| 周至县| 晋州市| 定边县| 永登县| 綦江县| 通许县| 集安市| 云安县| 大宁县| 县级市| 南皮县| 德安县| 丰台区| 鹤山市| 比如县| 濉溪县| 揭东县| 安仁县| 宁津县| 桐梓县| 泽普县| 安岳县| 重庆市| 民丰县| 富蕴县| 彝良县| 舞钢市| 许昌市| 微博| 亚东县| 天峻县| 灵川县| 汝城县| 阜南县| 循化|