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

如何在JMeter中提取JSON数组的第3个time元素

解决JSON Extractor提取第三个time元素的问题

我明白你遇到的困扰了——用$..time能成功获取所有time值的数组,但加上索引[2]却返回空数组,这其实是JSONPath表达式的逻辑匹配问题导致的。

问题原因

$..time会递归遍历整个JSON结构,把所有匹配到的time字段值收集成一个数组,但部分JSONPath实现(比如JMeter的JSON Extractor)在解析$..time[2]时,会错误地尝试给每个单独的time字段值添加索引,而非对收集后的整体数组使用索引,这就导致找不到匹配项,最终返回空数组。

解决方案

方案1:直接定位第三个对象再提取time

最精准的写法是先定位到JSON数组的第三个元素(数组索引从0开始,所以第三个元素的索引是2),再访问它的time属性:

$[2].time

这个表达式会直接指向数组中第3个对象的time字段,返回结果就是你需要的"06:49PM"。

方案2:利用提取器的匹配序号参数(针对JMeter等工具)

如果你更倾向于保留$..time这个表达式,可以在JSON Extractor的**Match No.**参数中填写3(注意这里是从1开始计数,而非0),工具会自动返回收集到的数组里的第三个元素。

方案3:通过数组长度取最后一个元素(适用于不确定元素数量的场景)

如果你的JSON数组元素数量可能变化,但需要取最后一个time值,可以用这个表达式:

$..time[(@.length-1)]

它会先获取$..time返回的完整数组,再直接取数组的最后一个元素,同样能得到"06:49PM"。

优先试试第一种方案,应该能直接解决你的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 11:29:04