从api获取json时变量未定义

时间:2016-11-18 17:15:06

标签: javascript json node.js aws-lambda

我想知道为什么当我试图在我的json中获取一个变量时,它给了我undefined。

这是我正在执行的代码:

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();

来自api的json:

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

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

{“data”:[{所有数据显示在这里}],“分页”:0}

未定义

未定义

未定义

2 个答案:

答案 0 :(得分:1)

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

尝试

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

答案 1 :(得分:0)

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

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

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