邮递员脚本:如何引用带有网址的 json 节点作为名称
Posted
技术标签:
【中文标题】邮递员脚本:如何引用带有网址的 json 节点作为名称【英文标题】:Postman scripting: how to refrence a json node with web address for a name 【发布时间】:2021-06-10 09:58:54 【问题描述】:我目前正在使用不记名令牌,我需要从中获取一些数据以继续用户旅程。我发现以下代码为我进行解码
var jsonData = JSON.parse(responseBody);
const payload = jsonData.Result.AccessToken.split('.')[1]; // Assuming the JWT is in id_token
const parsed = JSON.parse(atob(payload));
它使用 atob 沙盒脚本来解码 base 64 编码的 payload,解码后的 payload 看起来有点像这样:
"http://mytestsite.uk/roles": [
"user"
],
"http://mytestsite.uk/id": "8d2c3de9-4fa2-a58e-68109d977",
"http://mytestsite.uk/email": "tst3@mytestsite.uk",
"sub": "500b416c8942bb0069b98a3c",
"aud": "api.tst.mytestsite.uk",
"iat": 1615544685,
"exp": 1615631085
通常,我会像这样引用我想要的有效负载主体项(例如 sub):
pm.environment.set('sub', parsed.sub);
但是,我想引用“http://mytestsite.uk/id”,不知道该怎么做。
parsed.http://mytestsite.uk/id
以上导致脚本出错,我无法对其进行编码,因为这不会删除点,我显然不能将它作为字符串传递 - 我想我不清楚如何正确传递这个正确引用 JSON 对象的名称。
【问题讨论】:
【参考方案1】:你应该可以这样引用它:
pm.environment.set('id', parsed['http://mytestsite.uk/id'])
【讨论】:
以上是关于邮递员脚本:如何引用带有网址的 json 节点作为名称的主要内容,如果未能解决你的问题,请参考以下文章