Node.js中的JSON不能给我所有信息

时间:2019-12-15 17:49:48

标签: node.js json

我尝试从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

3 个答案:

答案 0 :(得分:1)

原因是使用console.log的默认访问深度为2 您有两种处理方式

  1. 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