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

数组型JSON响应元素访问表达式无效,求正确编写方法

如何正确编写数组型JSON的元素访问表达式

根据你提供的evaluate方法逻辑(会把->替换为.,最终通过json->read解析表达式),核心问题在于根节点为数组的JSON,必须先指定数组索引才能访问内部属性,以下是具体的解决方案和示例验证:

核心规则

  • 如果JSON根是对象(以{}开头):直接从顶层属性名开始编写表达式
  • 如果JSON根是数组(以[]开头):表达式必须以[索引值]开头,定位到数组中的具体元素后,再继续访问其内部属性/子数组

针对你的示例修正

1. 根数组的基础访问

你的数组型JSON:

[ { "test": "test", "title": "title" }, ... ]

错误表达式:test(跳过了根数组的索引定位)
正确表达式:[0].test(先取数组第1个元素,再访问它的test属性)

2. 嵌套数组的访问

你的无效示例JSON:

[ { "id": [ { "value": 398 } ], ... } ]

错误表达式:id[0].value / id.value(未定位根数组的元素)
正确表达式:[0].id[0].value(步骤:①取根数组第1个元素 → ②访问其id属性(子数组) → ③取id数组第1个元素 → ④访问value属性)


验证你的有效示例逻辑

再对照你提到的有效示例,根是对象的情况:

{ "data": { "type": "article", "id": "123", ... } }

表达式data.type有效,因为根是对象,直接从顶层data属性开始访问,符合规则。

额外说明

在你的evaluate方法中,当evaluationMode为javascript时会把->替换为.,所以无论你写[0]->test还是[0].test,最终都会被解析为后者,两种写法都可以生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:16:33