解决问题 com.alibaba.fastjson.JSONObject cannot be cast to 的问题

朱雀 2021-01-10 06:44 2846阅读 0赞

我们通过接口的形式得到一组json数据如下:

  1. {
  2. "name": "小名",
  3. "age":19
  4. "subTradeList": [
  5. {
  6. "balance": "2083.63",
  7. "money": "0.01",
  8. "tradeDesc": "工资",
  9. "tradeTime": "2018-12-07 11:51:01",
  10. "tradeType": "1",
  11. "queryTime": "2018-12-07 15:33:07",
  12. "recAccount": "410350248160111",
  13. "recAccountName": "(特约)中金支付(资金结算)",
  14. "tradeAddress": null
  15. },
  16. {
  17. "balance": "2083.63",
  18. "money": "0.01",
  19. "tradeDesc": "代付",
  20. "tradeTime": "2018-12-07 11:50:58",
  21. "tradeType": "1",
  22. "queryTime": "2018-12-07 15:33:07",
  23. "recAccount": "410350248160111",
  24. "recAccountName": "(特约)中金支付(资金结算)",
  25. "tradeAddress": null
  26. }]
  27. }

然后我们将JSONObject转换成我们需要的对象类型

  1. List<SubTrade> subTrades = (List<SubTrade>) json.get(key);

这样看起来并没有什么问题,SubTrade对象的list我们已经可以去使用了,但是当执行以下代码的时候却报了错

  1. for (int i = 0; i < subTradeList.size(); i++) {
  2. SubTrade subTrade = subTradeList.get(i);
  3. }

在这里插入图片描述

解决办法

在转换的时候这样写

  1. List<SubTrade> subTrades = JSON.parseArray(json.getString("subTradeList"), SubTrade.class);

就可以解决问题

发表评论

表情:
评论列表 (有 0 条评论,2846人围观)

还没有评论,来说两句吧...

相关阅读