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

Jmeter如何基于指定数组匹配JSON路径并返回多个对应ID值

批量提取匹配ID的两种实现方案

方案1:直接使用JSONPath批量匹配

如果你的JSONPath解析器支持in操作符(主流解析器如Jayway、JSONPath-Plus均支持),直接用以下路径即可一次性返回所有匹配的ID数组:
$.payload[?(@.name in ['France', 'Switzerland', 'Croatia', 'Spain', 'Brondby', 'Sonderjyske', 'CFR Cluj', 'Ujpest FC', 'Young Boys' , 'Xamax', 'Bedford Town', 'Biggleswade Town'])].id

如果解析器不支持in操作,改用多条件或拼接即可:
$.payload[?(@.name == 'France' || @.name == 'Switzerland' || @.name == 'Croatia' || @.name == 'Spain' || @.name == 'Brondby' || @.name == 'Sonderjyske' || @.name == 'CFR Cluj' || @.name == 'Ujpest FC' || @.name == 'Young Boys' || @.name == 'Xamax' || @.name == 'Bedford Town' || @.name == 'Biggleswade Town')].id

方案2:代码遍历提取(灵活性更高)

以JavaScript为例,先把目标名称存为数组,再对API返回的payload做过滤映射即可,还能额外统计未匹配到的名称:

// 待匹配的目标名称数组,提前统一去除两端空格避免匹配失败
const targetNames = ['France', 'Switzerland', 'Croatia', 'Spain', 'Brondby', 'Sonderjyske', 'CFR Cluj', 'Ujpest FC', 'Young Boys' , 'Xamax', 'Bedford Town', 'Biggleswade Town'].map(item => item.trim())
// API返回的JSON对象
const apiResult = {/* 此处填入你实际拿到的API返回内容 */}

// 提取匹配到的ID
const matchedIdList = apiResult.payload
  .filter(item => targetNames.includes(item.name.trim()))
  .map(item => item.id)

// 可选:查找未匹配到的名称,方便排查缺失数据
const unmatchedNames = targetNames.filter(name => !apiResult.payload.some(item => item.name.trim() === name))

注意事项

你提供的目标数组中Young Boys后带有多余空格,匹配时建议统一对两端空格做trim处理,避免因格式问题导致匹配失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 09:57:07