Javascript 无法分析Instagram API返回的用户\u媒体对象
我正在从Instagram API获取一份最近用户媒体的列表。我正在取回数据,但由于某种原因,我无法用通常的方法解析对象 这是进行API调用并返回对象的方法: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=
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]
,这是预期的行为。尝试使用,
而不是+
(就像我在回答中所做的那样)。