我有一个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,
...
}
}
您只能对字符串值使用正则表达式占位符,因此这在本例中不起作用,因为元素的值是一个对象。
但是,如果您只想说“我希望这个元素存在但不关心内容”,您可以使用"${json-unit.忽略}"
作为值。
如果您确实需要更明确,我建议仍然执行上述操作,但添加第二个带有JSONPath表达式的主体匹配器,说明对象应该包含什么。
再举一个如何使用正则表达式的例子:
{
"request": {
"urlPath": "/customer",
"method": "POST",
"bodyPatterns": [
{
"equalToJson": {
"country": "${json-unit.regex}(DE)|(ES)|(IT)|(FR)"