Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法分析Instagram API返回的用户\u媒体对象_Javascript_Node.js_Instagram_Instagram Api - Fatal编程技术网

Javascript 无法分析Instagram API返回的用户\u媒体对象

Javascript 无法分析Instagram API返回的用户\u媒体对象,javascript,node.js,instagram,instagram-api,Javascript,Node.js,Instagram,Instagram Api,我正在从Instagram API获取一份最近用户媒体的列表。我正在取回数据,但由于某种原因,我无法用通常的方法解析对象 这是进行API调用并返回对象的方法: function getRecent(user_id, access_token, count) { request .get(`https://api.instagram.com/v1/users/${user_id}/media/recent/?access_token=${access_token}&count=

我正在从Instagram API获取一份最近用户媒体的列表。我正在取回数据,但由于某种原因,我无法用通常的方法解析对象

这是进行API调用并返回对象的方法:

function getRecent(user_id, access_token, count) {
  request
    .get(`https://api.instagram.com/v1/users/${user_id}/media/recent/?access_token=${access_token}&count=${count}`, function(err, response, body) {
      if (err) {
        console.log('subscriptions.js 47 error: ' + err)
      }
      console.log('subscriptions.js 49 response.statusCode = ' + response.statusCode)
      console.log('subscriptions.js 50 body = ' + body)
    })
}
最后一个控制台日志(对于主体)返回:

subscriptions.js 50 body = {"pagination": {}, 
    "data": [{"id": "1638720960483714658_6291666599", 
       "user": {"id": "6291666599", 
       "full_name": "metoo", 
       "profile_picture": "https://..." etc.}
但是如果我记录
body.data
body[“data”]
每个返回未定义

这对我来说毫无意义。为什么我无法以正常方式访问对象

感谢您的帮助。

根据Instagram,
/media/recent/
返回JSON响应

您需要解析JSON。试一试

JSON.parse(body)
根据Instagram,
/media/recent/
返回JSON响应

您需要解析JSON。试一试

JSON.parse(body)

由于
body
是一个字符串,因此必须
JSON.parse
它才能获得实际的对象:

function getRecent(user_id, access_token, count) {
  request
    .get(`https://api.instagram.com/v1/users/${user_id}/media/recent/?access_token=${access_token}&count=${count}`, function(err, response, body) {
      if (err) {
        console.log('subscriptions.js 47 error: ' + err)
      }
      console.log('subscriptions.js 49 response.statusCode = ' + response.statusCode)
      console.log('subscriptions.js 50 body = ' + body)

      const json = JSON.parse(body)
      console.log('Yay! An actual object:', json)
      console.log('And its .data:', json.data)
    })
}
事实上,请求库可以为您做到这一点:


由于
body
是一个字符串,因此必须
JSON.parse
它才能获得实际的对象:

function getRecent(user_id, access_token, count) {
  request
    .get(`https://api.instagram.com/v1/users/${user_id}/media/recent/?access_token=${access_token}&count=${count}`, function(err, response, body) {
      if (err) {
        console.log('subscriptions.js 47 error: ' + err)
      }
      console.log('subscriptions.js 49 response.statusCode = ' + response.statusCode)
      console.log('subscriptions.js 50 body = ' + body)

      const json = JSON.parse(body)
      console.log('Yay! An actual object:', json)
      console.log('And its .data:', json.data)
    })
}
事实上,请求库可以为您做到这一点:


我相信
body
是一个字符串。所以
JSON.parse(body).data
。我相信
body
是一个字符串。因此
JSON.parse(body).data
。您可以使用
+
运算符将对象与字符串连接起来。这就是为什么您会在那里看到
[object object]
,这是预期的行为。尝试使用
而不是
+
(就像我在回答中所做的那样)。使用
+
运算符将对象与字符串连接起来。这就是为什么您会在那里看到
[object object]
,这是预期的行为。尝试使用
而不是
+
(就像我在回答中所做的那样)。