提问者:小点点

如何检查请求体中的字段值是json使用Wiremck


我有一个JSON的请求,我需要检查一个字段的值是json。我正在尝试使用正则表达式:

"request": {
    ...
    "bodyPatterns": [
      {
        "equalToJson": {
          "field_1": "Value",
          "field_2": "${json-unit.any-number}",
          "field_3": "${json-unit.regex}^\u007B.\u007D$"
        }
      }
    ]
  }

我也试过:

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

"field_3": "${json-unit.regex}{.}"

但是这些都不起作用。如何确定字段的值包含JSON是正确的?

必须与存根匹配的示例请求:

{
    "field_1": "Value",
    "field_2": 100,
    "field_3": {
        "1.1": 2,
        "1.2": null,
        "1.3": null,
        "1.4": null,
         ...
    }
}

共2个答案

匿名用户

您只能对字符串值使用正则表达式占位符,因此这在本例中不起作用,因为元素的值是一个对象。

但是,如果您只想说“我希望这个元素存在但不关心内容”,您可以使用"${json-unit.忽略}"作为值。

如果您确实需要更明确,我建议仍然执行上述操作,但添加第二个带有JSONPath表达式的主体匹配器,说明对象应该包含什么。

匿名用户

再举一个如何使用正则表达式的例子:

{
  "request": {
    "urlPath": "/customer",
    "method": "POST",
    "bodyPatterns": [
      {
        "equalToJson": {
          "country": "${json-unit.regex}(DE)|(ES)|(IT)|(FR)"