【问题标题】:How do I extract specific values from the JSON response in Postman using a test?如何使用测试从 Postman 中的 JSON 响应中提取特定值?
【发布时间】:2020-08-07 02:08:00
【问题描述】:

我需要能够解析来自 Postman 响应的 JSON 结果,以便在控制台输出中提取 name 值。我的 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);

感谢任何帮助。

【问题讨论】:

    标签: javascript json postman


    【解决方案1】:

    让我们来看看吧:

    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 语法糖(特别是 arrow functions),我们可以让函数代码更简洁:

    var response = JSON.parse(responseBody);
    
    var names = reponse.entries.map(entry => entry.accessible_by.name);
    
    console.log(names);
    

    【讨论】:

    • 感谢您的详细解释!这工作得很好,现在我理解了语法,并且能够为其他类似的数据修改它。
    猜你喜欢
    • 1970-01-01
    • 2020-07-28
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    相关资源
    最近更新 更多