如何用JMeter JSON Extractor提取含指定内容条目的ID
正确的JSON Path表达式解决方案
你的原有表达式存在几个问题:目标字段定位错误、字符串未加引号、使用精确匹配而非包含匹配、最后提取的字段名错误。以下是针对不同场景的正确表达式:
场景1:内层content的父键固定(比如都是SP_VX)
如果每个条目中的content对象下的键是固定的(如示例中的SP_VX),可以使用这个表达式:
$.[?(@.content.SP_VX.content contains 'SOAP Test')].id
场景2:内层content的父键不固定(可能有多种键名)
如果content对象下的键是动态变化的(比如有的是SP_VX,有的是SP_AB等),用通配符匹配所有子键:
$.[?(@.content.*.content contains 'SOAP Test')].id
表达式说明
$:定位到JSON根节点(这里是数组).[...]:遍历数组中的每一个元素?():开启过滤条件判断@.content.*.content:匹配当前元素下content对象的所有子对象中的content字段contains 'SOAP Test':判断该字段值是否包含指定字符串(区别于==的精确匹配).id:提取符合过滤条件元素的id字段
用你提供的示例数据测试,上述表达式会返回结果:["773"]
内容的提问来源于stack exchange,提问作者MGP
相关产品推荐
相关产品推荐

