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

WireMock 如何编写匹配数组包含指定值的正确JSONPath表达式

WireMock JSONPath数组包含匹配调整方案

问题原因

你当前使用的JSONPath表达式 $.RequestBody[?(@.numbers == ['10010701'])] 的匹配逻辑是校验numbers数组完全等价于仅包含10010701的单元素数组,因此只有数组长度为1且值完全对应时才会生效,无法适配数组包含多个元素的场景。

解决方法

调整matchesJsonPath为以下任意一种写法即可实现需求:

  • 写法1:直接查询数组中匹配目标值的节点,只要存在至少1个匹配结果即可触发规则
"matchesJsonPath": "$.RequestBody.numbers[?(@ == '10010701')]"
  • 写法2:使用JsonPath的contains运算符直接判断数组包含目标值
"matchesJsonPath": "$.RequestBody[?(@.numbers contains '10010701')]"

匹配逻辑说明

WireMock的matchesJsonPath规则判定逻辑为:只要指定的JSONPath表达式能在请求Body中查询到至少一个匹配结果,就判定请求匹配成功。上述两种写法只要numbers数组中存在10010701值,无论数组还包含多少其他元素,都会匹配成功。


内容的提问来源于stack exchange,提问作者S.I.D

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:15:04