使用 Javascript 在 Postman 中进行 Json Body Array 验证



我有Json的回应如下....

{
"errors": [
{
"status": "XXXX",
"source": ["pointer","value"],
"detail": "ZZZZZZZZZZZZZZ."
},
{
"status": "XXXX",
"source": ["pointer","value"],
"detail": "ZZZZZZZZZZZZZZZ."
},
{
"status": "XXXX",
"source": ["pointer"],
"title": " ZZZZZZZZZZZZZZZZ"
}
]
}

我必须检查天气源是否在所有字段中同时具有指针和值。 我尝试了一些如下的事情..

responseJson = JSON.parse(responseBody);
var list = responseBody.length;
tests["Expected fields"] = list === undefined || errors[0].source=== ["pointer","value"];

有人可以帮忙吗?

你需要这样的东西吗:

var dataHaveIt = {
"errors": [{
"status": "XXXX",
"source": ["pointer", "value"],
"detail": "ZZZZZZZZZZZZZZ."
},
{
"status": "XXXX",
"source": ["pointer", "value"],
"detail": "ZZZZZZZZZZZZZZZ."
}
]
};
var dataDontHaveIt = {
"errors": [{
"status": "XXXX",
"source": ["pointer", "value"],
"detail": "ZZZZZZZZZZZZZZ."
},
{
"status": "XXXX",
"source": ["pointer", "value"],
"detail": "ZZZZZZZZZZZZZZZ."
},
{
"status": "XXXX",
"source": ["pointer"],
"title": " ZZZZZZZZZZZZZZZZ"
}
]
};
var allHaveIt = false;
allHaveIt = dataHaveIt.errors.reduce(function(result, element) {
return result && element.source.includes("pointer") && element.source.includes("value")
}, true);
console.log(allHaveIt);
allHaveIt = dataDontHaveIt.errors.reduce(function(result, element) {
return result && element.source.includes("pointer") && element.source.includes("value")
}, true);
console.log(allHaveIt)

实际工作在此代码中完成:

allHaveIt = dataHaveIt.errors.reduce(function(result, element) {
return result && element.source.includes("pointer") && element.source.includes("value")
}, true);

当作为最后一个参数true传递给reduce()方法时,我们假设所有值都存在,然后reduce()将遍历所有元素,并在includes()的帮助下,我们可以检查source属性是否包含这些元素

最新更新