JMeter JSON Extractor提取非空随机ItemID仍返回null值问题求助
问题原因
- 原表达式使用了递归匹配符
$..,会遍历JSON所有层级的节点,部分JSONPath解析器会误匹配到不包含ItemID字段的节点,导致最终结果混入null值。 - 部分JSONPath解析器对
!= null的判断逻辑存在兼容问题,仅用该条件无法完全过滤空值。
解决方法
调整JSONPath表达式即可,按严谨程度可以选择以下两种写法:
基础可用写法
直接明确指定遍历Items数组,同时增加真值判断过滤空值:
$.Items[?(@.ItemID != null && @.ItemID)].ItemID
用提供的示例JSON测试,该表达式返回结果为["IT01", "IT02", "test"],无null值。如果需要随机提取一个ItemID,在JSON Extractor组件中将匹配数字设置为0即可。
严格过滤写法
如果要额外排除非字符串类型、空字符串的异常ItemID,可以用更严谨的判断:
$.Items[?(@.ItemID !== null && typeof @.ItemID === 'string' && @.ItemID.trim().length > 0)].ItemID
内容的提问来源于stack exchange,提问作者Kumar
相关产品推荐
相关产品推荐

