You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

解析API JSON响应获取CaseResult内RequestID报错求解决方案

问题解决:org.json无法解析嵌套路径获取RequestID

你遇到的问题是org.json库的JSONObject.get()方法不支持直接传入嵌套路径字符串,它只能识别当前层级的键名,所以Data[0].CaseData.CaseResult.RequestID会被当作一个完整的键名去查找,自然找不到。

正确的做法是逐层解析JSON结构,步骤如下:

  • 先获取Data对应的JSON数组
  • 取出数组的第一个元素(索引0)
  • 从该元素中获取CaseData对象
  • 再从CaseData中获取CaseResult对象
  • 最后从CaseResult中提取RequestID

修正后的代码

JSONObject actualJson = new JSONObject(response.getResponseText())
// 逐层解析嵌套结构
JSONArray dataArray = actualJson.getJSONArray("Data")
JSONObject firstDataItem = dataArray.getJSONObject(0)
JSONObject caseData = firstDataItem.getJSONObject("CaseData")
JSONObject caseResult = caseData.getJSONObject("CaseResult")
def requestID = caseResult.getString("RequestID")

或者用Groovy的链式调用简化写法:

JSONObject actualJson = new JSONObject(response.getResponseText())
def requestID = actualJson.getJSONArray("Data")
                          .getJSONObject(0)
                          .getJSONObject("CaseData")
                          .getJSONObject("CaseResult")
                          .getString("RequestID")

补充说明

如果需要更简洁的路径式解析,可以考虑更换支持路径语法的JSON库(比如Jackson、Gson),但如果必须使用org.json,就只能采用逐层解析的方式。

内容的提问来源于stack exchange,提问作者Prabu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 05:54:59