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

G1ant中JsonPath的length()方法未实现,如何获取数组长度?

解决G1ant中无法使用JsonPath length()函数获取数组长度的问题

我明白你遇到的困扰——G1ant的JsonPath实现确实不支持length()函数,直接调用会抛出"Array index expected"异常。针对你的场景,结合你使用的addon core 4.103.0.0和addon language 4.104.0.0版本,这里有两个可靠的替代方案:

方案1:提取数组后用内置length命令计算长度

先通过JsonPath提取目标数组,再用G1ant core内置的length命令获取元素数量,步骤简单且稳定:

♥jsonImage = ⟦json⟧‴{ "book" : [ { "name" : "Bambi"} , { "name" : "Cinderella" } ] }‴
// 提取整个book数组
♥bookArray = ♥jsonImage⟦$.book⟧
// 使用length命令获取数组长度
♥arrayLength = length ♥bookArray
// 弹窗展示结果
dialog ♥arrayLength

这个方案完全依赖G1ant原生命令,不需要额外依赖,适配性强。

方案2:通过JavaScript eval计算数组长度

利用G1ant的eval命令调用JavaScript解析JSON并计算长度,适合需要对JSON做复杂操作的场景:

♥jsonImage = ⟦json⟧‴{ "book" : [ { "name" : "Bambi"} , { "name" : "Cinderella" } ] }‴
// 将JSON对象转为字符串形式
♥jsonStr = ♥jsonImage⟦⟧
// 用JavaScript解析JSON并获取数组长度
♥arrayLength = eval script ‴let jsonObj = JSON.parse('♥jsonStr'); jsonObj.book.length‴ language js
// 弹窗展示结果
dialog ♥arrayLength

这种方法灵活性更高,如果你后续需要对JSON进行更多复杂处理,JavaScript的处理能力会更有优势。

两种方案都能正确返回示例中book数组的长度2,你可以根据自身场景选择合适的方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:35:34