如何解决特定的JSON对象

时间:2019-05-15 14:05:52

标签: node.js rest api

我调用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]);
  }

3 个答案:

答案 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');