当前位置: 首页 > news >正文

开发避坑指南(32):FastJSON异常JSONArray cannot be cast to JSONObject解决方案

错误信息

Exception in thread "main" java.lang.ClassCastException: com.alibaba.fastjson.JSONArray cannot be cast to com.alibaba.fastjson.JSONObjectat com.alibaba.fastjson.JSONObject.getJSONObject(JSONObject.java:114)at com.demo.utils.StringUtils.main(StringUtils.java:354)

异常代码

使用LISTAGG函数将多行数据合并为单行字符串,如下:

String str = "{\"status\":1,\"message\":\"查询完成\",\"data\":[{\"orderNo\":\"BCUJ0001\",\"goodsType\":\"1\"}]}";
JSONObject jsonObject = (JSONObject) JSONObject.parse(str);
String status = jsonObject.getString("status");
if("1".equals(status)) {String dataStr = JSON.toJSONString(jsonObject.getJSONObject("data"));List<RetVo> retVoList = (List<RetVo>) JSON.parseObject(dataStr, RetVo.class);
}

报错行:String dataStr = JSON.toJSONString(jsonObject.getJSONObject(“data”));

错误分析

接口返回的字符串中,data属性是一个数组,根据报错提示,是不能将数组转换为JSONObject对象的,所以报错了。

解决办法

使用JSON.parseArray解析data节点,代码如下:

String str = "{\"status\":1,\"message\":\"查询完成\",\"data\":[{\"orderNo\":\"BCUJ0001\",\"goodsType\":\"1\"}]}";
JSONObject jsonObject = (JSONObject) JSONObject.parse(str);
String status = jsonObject.getString("status");
if("1".equals(status)) {List<RetVo> retVoList = JSON.parseArray(jsonObject.getString("data"), RetVo.class);
}
http://www.dtcms.com/a/344750.html

相关文章:

  • 什么是数据分类分级?数据分类分级技术实现路径及产品推荐
  • ​Kubernetes 详解:云原生时代的容器编排与管理
  • 08.21总结
  • 【yocto】BitBake指令汇总解析
  • 基于springboot的农产品社区配送系统
  • 线性回归的学习
  • C++ unistd.h库文件介绍(文件与目录操作, 进程管理, 系统环境访问, 底层I/O操作, 系统休眠/执行控制)
  • golang 非error错误分类
  • 【如何生成专业级 API 接口文档:从规范到实战】
  • 指针实现数组的逆序存放并输出
  • IKE 与 ISAKMP 核心笔记
  • JCTools Spmc 单生产者-多消费者的无锁并发有界队列
  • 支持轻量化部署的混元3D世界模型Lite版本上线魔乐社区,昇腾部署实践来啦
  • FCT/ATE/ICT通用测试上位机软件
  • Leetcode—595. 大的国家【简单】
  • JUC之Fork/Join
  • WindowsAPI|每天了解几个winAPI接口之网络配置相关文档Iphlpapi.h详细分析9
  • 2-3.Python 编码基础 - 类型检测与类型转换
  • Vue 实现可拖拽分割布局(支持左右、上下拖拽调整)
  • Java 学习笔记(基础篇7)
  • 2025年游戏盾SDK动态加密技术全景解析:从防御破解到重塑游戏安全基石
  • CSM5110 5V/1A降压芯片 SOT23-5封装 可替代RY3408 带OVP保护
  • vim的使用
  • 牛客面经1 滴滴社招-002
  • JAVA国际版多商户运营版商城系统源码多商户社交电商系统源码支持Android+IOS+H5
  • 哈希和字符串哈希
  • STM32 外设驱动模块七:红外反射式光电模块
  • Centos 8 管理防火墙
  • 安装Tailscale
  • Maven初识到应用