我尝试从API获取一些数据。 在邮递员中我得到
{
"data": {
"platformInfo": {
someInfos
},
"userInfo": {
someInfos
},
"metadata": {},
"segments": [
{
someInfos,
"stats": {
"timePlayed": {
"rank": null,
"percentile": 77.0,
"displayName": "Time Played",
"displayCategory": "General",
"category": "general",
"metadata": {},
"value": 3404734,
"displayValue": "39d 09h 45m",
"displayType": "TimeSeconds"
},
other stats here
}
}
],
"availableSegments": [],
"expiryDate": "2019-12-15T17:19:18.9051055Z"
}
}
但是在node.js中我有
{
"data": {
"platformInfo": {
someInfos
},
"userInfo": {
someInfos
},
"metadata": {},
"segments": [Object],
"availableSegments": [],
"expiryDate": "2019-12-15T17:19:18.9051055Z"
}
}
在“段”中如何看到差异。
我从node.js获取请求:
var request = require('request');
var JsonFind = require('json-find');
var url = 'https://public-api.tracker.gg/v2/csgo/standard/profile/steam/steamId';
request.get({
url: url,
json: true,
headers: {'TRN-API-KEY': 'Some api-key'}
}, (err, res, data) => {
if (err) {
console.log('Error:', err);
// error, reject
reject(err);
} else if (res.statusCode !== 200) {
console.log('Status:', res.statusCode);
reject(res.statusCode);
} else {
console.log(data.segments)
}
})
在使用console.log(data.segments)的地方,我有未定义的对象。 我不在哪里。问题可能出在分段中的大数据上。 当然,代码适用于co
答案 0 :(得分:1)
原因是使用console.log的默认访问深度为2 您有两种处理方式
console.log(JSON.stringify(x, null, 2))
其中2是用于缩进的空格数。
2。require('util').inspect.defaultOptions.depth = null
这将消除深度上的任何限制
答案 1 :(得分:-2)
您从console.log中获得了什么,以便从nodejs获得该响应?我建议使用JSON.stringify()检查结果的内容。这将扩展segment对象,并显示其完整内容,就像邮递员一样。
这很可能是一个理解接收到的响应对象的结构的问题。我建议也做一个console.log数据。
答案 2 :(得分:-3)
您在此处提供无效的身份验证凭据 请检查有效的凭证 然后再次尝试
您将获得一个api密钥,如: TRN-Api键:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 例如: TRN-Api-Key:17012661-57fa-45fa-bbdf-xxxxxxxxxxxx