从 api 获取 json 时变量未定义

Variable undefined when getting json from api

我想知道为什么当我试图在我的 json.

中获取一个变量时它给我未定义

这是我正在执行的代码:

var options = {
  host: url,
  path: '/api/v1/outside_processes/active_companies?process_token=' + process_token,
  method: 'POST'
};

http.request(options, function(res) {
  res.setEncoding('utf8');
  res.on('data', function (data) {
    console.log(data);
    console.log(data.data);
    console.log(data["data"]);
    console.log(data.paging);
  });
}).end();

json 来自 api:

{
"data": [
    {
        "id": 37
        ...more data
    },
    {
        "id": 15,
          ...more data
    }
],
"paging": 0
}

我在控制台中得到了什么:

{"data":[{所有数据都在这里显示}],"paging":0}

未定义

未定义

未定义

看起来你的路由正在返回字符串化的 JSON。

尝试

jsonData = JSON.parse(data)
console.log(jsonData)
console.log(jsonData.data)
console.log(jsonData.paging)

当你控制它时,如果它是一个对象,它应该显示如下

Object {data: Array[2], paging: 0}

因为你的结果清楚地表明它是一个字符串,所以你需要按照上面的答案来解析它