JMeter中使用多条件从动态JSON payload提取数据的方法
当然可以用
&&组合多条件来优化你的JSONPath查询! 完全没问题——你构思的这个带&&逻辑的JSONPath表达式是完全合法的,它能帮你精准筛选出同时满足两个条件的条目,并提取对应的entityId值。
最终可用的表达式:
$.payload[?(@.eventType == 'AAA' && @.outgoingCurrency == 'EUR')].entityId
针对你提供的示例JSON的验证说明:
对照你给出的payload数据,三个条目里没有同时符合两个条件的记录:
- 第一条:
eventType是AAA但outgoingCurrency为USD,不满足双条件 - 第二条:
eventType是BBB,不符合第一个条件 - 第三条:
eventType是AAA但缺少outgoingCurrency字段,条件不成立
所以这个表达式在当前示例数据中会返回空结果。但如果你的动态JSON中出现同时匹配eventType: 'AAA'和outgoingCurrency: 'EUR'的条目,它会准确提取对应的entityId。
小提示:
- 部分JSONPath工具实现可能要求给每个单独条件加上括号,写成:
这种写法在主流工具(如Jayway JsonPath、常用在线测试器)中也能正常工作,兼容性更好。$.payload[?((@.eventType == 'AAA') && (@.outgoingCurrency == 'EUR'))].entityId - 如果某些条目可能缺失
outgoingCurrency字段,这个表达式会自动忽略这些条目,因为不存在的字段参与比较时会被判定为不满足条件。
内容的提问来源于stack exchange,提问作者vlatko606
相关产品推荐
相关产品推荐

