为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用测试从 Postman 的 JSON 响应中提取特定值?

如何使用测试从 Postman 的 JSON 响应中提取特定值?

三国纷争 2022-12-22 09:57:23
我需要能够解析 Postman 响应的 JSON 结果,以便在控制台输出中提取名称值。我的 JSON 看起来像这样:"total_count": 7,"entries": [    {        "type": "collaboration",        "id": "21829111111",        "created_by": null,        "created_at": "2020-03-24T05:37:09-07:00",        "modified_at": "2020-03-24T05:37:09-07:00",        "expires_at": null,        "status": "accepted",        "accessible_by": {            "type": "group",            "id": "3085402",            "name": "Test",            "group_type": "managed_group"我发现的大多数示例都使用提取的值来创建变量,但我真的只需要一个可以复制和粘贴的简单列表。我已经使用这段代码做了类似的事情,但我不确定如何使用这些数据为我们修改它:var response = JSON.parse(responseBody);var usernames = response.map(function(account){    return account.credentials.userName;});console.log(usernames);任何帮助表示赞赏。
查看完整描述

1 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

让我们来看看它:

var response = JSON.parse(responseBody);

JSON.parse()正在将 JSON 响应作为字符串,并将其转换为 JS 对象,然后将其存储在response.

response.map(...)

map()函数在数组上调用,并将函数作为参数。它会为调用它的数组中的每个元素调用一次您提供的函数。

对于您的特定情况,我们需要稍微修改一下,因为response是一个对象,而不是数组,并且您之后的值name嵌套在 的entries数组中response。为了解决这个问题,我们将map()直接调用嵌套数组,并将其设置为一个新变量来存储结果,如下所示:

var names = response.entries.map(...);

现在,我们可以传递map()一个函数,该函数将从条目数组中的每个元素中提取名称。我们的函数需要接受数组元素作为参数,并返回提取的名称,以便map()可以将其添加到它正在创建的新数组中。

function(entry) { 
 return entry.accessible_by.name;
}

最后,我们得到这样的结果:

var response = JSON.parse(responseBody);


var names = response.entries.map(function(entry) {

  return entry.accessible_by.name;

});


console.log(names);

这会将一组名称输出到您的浏览器控制台。["Test", ...]


奖励:使用一点 JavaScript 语法糖(特别是箭头函数),我们可以使函数代码更简洁:


var response = JSON.parse(responseBody);


var names = reponse.entries.map(entry => entry.accessible_by.name);


console.log(names);


查看完整回答
反对 回复 2022-12-22
  • 1 回答
  • 0 关注
  • 270 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信