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

我需要能够解析 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);

任何帮助表示赞赏。


三国纷争
浏览 274回答 1
1回答

慕姐8265434

让我们来看看它: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);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript