如何从请求正文中访问作为环境变量存储的JSON对象的属性?

时间:2019-01-31 09:58:49

标签: json postman

这里我将响应对象存储在环境变量中。

   let res = pm.response.json(); 
   postman.setEnvironmentVariable('currentUser', JSON.stringify(res));

res对象具有一个称为“ userId”的属性

在另一个请求正文中,我想将userId设置为currentUser对象中存储的值。像这样的东西。

"userId": "{{currentUser.userId}}",

但这没用。

转换为JSON也不起作用。

"userId": "{({JSON.parse(currentUser)).userId}}",

在邮递员中可以这样做吗?

编辑

对象中有许多用于其他不同请求的属性。我在想,如果我只保存对象并在需要时传递它们,而不是为每个变量创建环境变量。这就是背后的原因。

1 个答案:

答案 0 :(得分:1)

这样的事情会为您做同样的事情吗?

let userId = pm.response.json().userId
pm.environment.set('currentUser', userId)

然后像这样使用它:

"userId": "{(userId}}"

不确定在数据中为单个值存储整个响应的背后原因是什么。


修改

您可以将其添加到第二个请求的Pre-request Script中:

pm.environment.set("userId", JSON.parse(pm.environment.get('currentUser')).userId)

然后以与上述相同的方式在POST请求正文中引用它。