0

我在 Postman 中创建了一个 GET 请求,它以 JSON 格式返回一些数据。我想获取包含特定子字符串的每个键的 JSON 响应值。

这是我一直在尝试的代码:

var jsonData = pm.response.json();
var keys = Object.keys(jsonData);

for(var i = 0; i < keys.length; i++) 
{
    if(keys[i].has("_number"))
    { 
       console.log(jsonData.keys[i]);
    }
}

编辑:问题不在于子字符串识别,而在于值的返回。如果我尝试使用条件中的特定键(例如 jsonData.Id)获取值,它就可以正常工作。当我尝试使用变量时,它只是不起作用。

4

3 回答 3

0

has() 仅在地图中搜索确切的键。试试这个检查子字符串:

if(keys[i].indexOf("_number") !== -1)
{ 
   console.log(jsonData.keys[i]);
}

甚至字符串函数包括()

if(keys[i].includes("_number"))
{ 
   console.log(jsonData.keys[i]);
}
于 2020-04-21T11:40:10.863 回答
0

方法略有不同,但这会在 Postman 控制台中给出相同的输出:

_.each(Object.entries(jsonData), (item) => {
    if(item[0].includes('_number')) {
        console.log(item[1])
    }
})
于 2020-04-21T13:44:42.837 回答
0

你可以这样检查

var jsonData = pm.response.json();
var keys = Object.keys(jsonData);

for(var i = 0; i < keys.length; i++) 
{
    if(keys[i].includes('_number'))
    { 
       console.log(jsonData[keys[i]]);
    }
}
于 2020-04-21T11:49:23.863 回答