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

如何在Postman中提取嵌套数组中的object_vector值

解决Postman中提取object_vector值失败的问题

问题分析

你的代码尝试提取响应中的object_vector并做断言,但失败的核心原因有两个:一是Postman集合变量默认会把非字符串类型(比如数组)转为字符串存储,直接存数组后再读取时得到的是字符串而非原数组对象,导致断言类型不匹配;二是你可能遗漏了将响应体解析为JSON对象的关键步骤。

修正方案

步骤1:先解析响应体

必须先把Postman的响应体解析成JSON对象,否则无法直接访问responseData.data这类嵌套属性:

const responseData = pm.response.json();

方案A:存储完整的二维object_vector

如果需要保留原二维数组结构,要把数组转为JSON字符串存储,读取时再解析回数组:

const responseData = pm.response.json();
// 转JSON字符串存储变量
pm.collectionVariables.set('newObjectVector', JSON.stringify(responseData.data.object_vector));
// 断言时解析回数组做对比
pm.expect(responseData.data.object_vector, "object vector").to.eql(JSON.parse(pm.collectionVariables.get('newObjectVector')));

方案B:提取内层一维数组(更常用)

如果实际需要的是object_vector里的内层一维数组(即[[...]]中的[...]),可以直接提取该层级的值,同样用JSON字符串处理存储:

const responseData = pm.response.json();
const targetVector = responseData.data.object_vector[0];
// 存储目标数组
pm.collectionVariables.set('newObjectVector', JSON.stringify(targetVector));
// 断言验证
pm.expect(targetVector, "object vector").to.eql(JSON.parse(pm.collectionVariables.get('newObjectVector')));

关键说明

Postman的集合/环境变量本质上存储的是字符串,直接存入数组、对象这类复杂类型时,Postman会自动调用toString()转换,导致存储内容变成数组的字符串形式而非原数组对象。因此必须通过JSON.stringify()和JSON.parse()实现复杂类型的正确存储与读取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 11:53:22