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

如何使用Wiremock校验请求体中字段值为JSON格式

解决方法

首先明确:你的请求示例里field_3本身就是JSON对象类型,不是字符串形式的JSON,所以用正则匹配的思路本身就错了——正则是用来匹配字符串的,没法直接匹配JSON对象结构。

针对你的场景,有两种正确的校验方式:

1. 匹配任意JSON对象

如果你只需要校验field_3是一个合法的JSON对象(不关心具体结构),直接用json-unit的${json-unit.any-object}占位符即可:

"request": {
    ...
    "bodyPatterns": [
      {
        "equalToJson": {
          "field_1": "Value",
          "field_2": "${json-unit.any-number}",
          "field_3": "${json-unit.any-object}"
        }
      }
    ]
  }

2. 匹配特定结构的JSON对象

如果你需要校验field_3的具体结构(比如必须包含某些字段),可以直接写出对应的JSON结构模板,用占位符处理不确定的值:

"request": {
    ...
    "bodyPatterns": [
      {
        "equalToJson": {
          "field_1": "Value",
          "field_2": "${json-unit.any-number}",
          "field_3": {
            "1.1": "${json-unit.any-number}",
            "1.2": "${json-unit.any-null}",
            "1.3": "${json-unit.any-null}",
            "1.4": "${json-unit.any-null}"
          }
        }
      }
    ]
  }

补充:如果field_3是字符串形式的JSON

如果你的场景里field_3是字符串类型(比如值是"{\"1.1\":2,...}"),那才需要用正则匹配,此时要注意JSON配置里的双重转义,简化版的正则写法如下:

"field_3": "${json-unit.regex}^\\{.*\\}$"

注:这个正则是简化版,复杂JSON场景建议用专门的JSON校验逻辑替代正则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 21:36:36