如何从请求体中访问存储为环境变量的JSON对象的属性?
这里我将响应对象存储在环境变量中如何从请求体中访问存储为环境变量的JSON对象的属性?,json,postman,Json,Postman,这里我将响应对象存储在环境变量中 let res = pm.response.json(); postman.setEnvironmentVariable('currentUser', JSON.stringify(res)); res对象有一个名为“userId”的属性 在另一个请求正文中,我想将userId设置为currentUser对象中存储的值。像这样的 "userId": "{{currentUser.userId}}", 但这不起作用 "userId": "{({J
let res = pm.response.json();
postman.setEnvironmentVariable('currentUser', JSON.stringify(res));
res对象有一个名为“userId”的属性
在另一个请求正文中,我想将userId设置为currentUser对象中存储的值。像这样的
"userId": "{{currentUser.userId}}",
但这不起作用
"userId": "{({JSON.parse(currentUser)).userId}}",
转换为JSON也不起作用
"userId": "{({JSON.parse(currentUser)).userId}}",
有可能在邮递员身上做到这一点吗
编辑
对象中有许多属性用于不同的其他请求。我在想,与其为每个对象创建环境变量,不如只保存对象并在需要时传递它们。这就是它背后的原因。像这样的东西也能为你做同样的事情吗
let userId = pm.response.json().userId
pm.environment.set('currentUser', userId)
然后像这样使用它:
"userId": "{(userId}}"
不确定在数据中存储单个值的整个响应背后的原因是什么
编辑 您可以将其添加到第二个请求的
请求前脚本中:
pm.environment.set("userId", JSON.parse(pm.environment.get('currentUser')).userId)
然后在POST
请求正文中引用它,方法与我前面提到的相同。您只想要该值而不是整个对象吗?@DannyDainton,例如,而不是将userId、tenantId、subscriptions等属性存储在单独的变量中,我是否可以存储currentUser对象并在需要时访问这些属性。这是可能应该添加到原始问题中的基本原理类型。您添加的信息越具体,答案就越具体。:)我知道上述情况。对象中有许多属性用于不同的其他请求。我在想,与其为每个对象创建环境变量,不如只保存对象并在需要时传递它们。这就是它背后的原因。用一些可行的方法更新了我的原始答案,虽然不是最好的解决方案,但应该会有所帮助。这仍然会在环境中创建变量。因此,我宁愿在检索对象时添加它们,而不是稍后添加。看起来我所问的不太可能。您可以使用第二个请求的“测试”选项卡中的.clear()
或.unset()
单独或全部删除它们。我认为这更多的是关于为什么它们在主体中被引用,而不是其他任何东西。我证明了这是可能的:)@enzio902-对于不直接在请求体内访问对象属性的问题,您找到了解决方案吗?我有一个类似的场景,目前正在使用局部变量。