我调用REST-API并获取JSON格式的人员列表。我如何只引用一个特定的对象,例如“亚当”?
我通过Node.js进行调用,并希望将Javascript对象传递给另一个函数。
我使用:
Array
(
[20190516] => Array //date of day 2019 05 16
(
[1558002600] => Array//event start time
(
[0] => Array
(
[id] => 645
[pid] => 16
[tstamp] => 1557905849
[title] => testEvent
[alias] => testEvent
[author] => 1
[addTime] => 1
[startTime] => 1558002600
[endTime] => 1558003500
[startDate] => 1557957600
[endDate] => 1557957600
)
)
)
也许我的问题是我无法清楚表达我的问题(并且找不到任何信息)
这是JSON:
request('rest-api-URL', function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(response.body); // Prints the JSON object
var object = JSON.parse(body);
console.log(Object.keys(name)[0]);
}
答案 0 :(得分:0)
如果我正确理解了您的问题,则希望基于name属性选择一个对象。
鉴于persons
数组,您可以按以下名称过滤对象:
function select(objects, name) {
return objects.filter(obj => obj.name === name)[0];
}
const adamObject = select(persons, 'Adam');
或者,您可以使用Lodash的过滤器https://lodash.com/docs/#filter
答案 1 :(得分:0)
您可以使用JavaScript filter()函数:
array.filter(entry => entry.name == 'Adam')[0]
filter()函数将返回一个匹配对象的数组,因此最后一个[0],因为它将返回一个对象的数组。
答案 2 :(得分:0)
您可以尝试使用查找
var person = array.find(data => data.name === 'Adam');