Postman中基于响应体执行If Else判断时空数组校验失败问题
Postman空数组判断逻辑修复方案
问题原因
你当前使用的jsonData == "[]"判断条件不生效,核心原因是jsonData是Postman解析响应后生成的数组对象,并非字符串类型,对象和字符串直接做相等判断永远不会返回真值。
正确实现代码
在Postman的「Tests」标签中使用如下逻辑即可:
// 解析响应JSON,兼容异常情况 try { const jsonData = pm.response.json(); // 先判断是数组,再判断长度为0,逻辑更严谨 if (Array.isArray(jsonData) && jsonData.length === 0) { // 此处写入空数组对应的IF分支代码 console.log('触发空数组IF分支') } else { // 此处写入其他情况对应的ELSE分支代码 console.log('触发非空ELSE分支') } } catch (e) { // 响应非JSON格式时默认走ELSE分支,可按需调整 console.log('响应格式异常,触发ELSE分支') }
其他可选方案
如果确实需要通过字符串对比实现判断,可将解析后的对象转回JSON字符串再对比,写法如下,但严谨度低于上述方案:
if (JSON.stringify(jsonData) === "[]") { // IF分支逻辑 }
内容的提问来源于stack exchange,提问作者James Mason
相关产品推荐
相关产品推荐

