JSON url parse在Node.js中返回NaN

时间:2016-11-04 05:50:27

标签: javascript json node.js

如果传递了正确的参数(url),我创建了一个URL Shortener Web服务,它返回JSON。

现在,因为我正在学习Node.js,我正在尝试创建一个Node.js包装器来解析数据并在控制台中打印它们(现在)。

我正在使用httprequest模块来解析我从网址响应中收到的JSON数据。

这是我打印数据的代码:

var request = require('request');
var http = require('http');

var url = process.argv[2];
var apiUrl = "http://shtr.ml/stats-api.php?url=" + url;

http.get(apiUrl,function(res){
var body = '';
res.on('data',function(chunk)
{
    body += chunk;
});

res.on('end',function(){
    const resp = JSON.parse(body);
    console.log(JSON.stringify(resp));
    if(resp.message.toString() == "Success")
    {
        console.log("Short URL : ",resp.short-url);
        console.log("Long URL : ",resp.long-url);
        console.log("Creation Date : ",resp.created);
        console.log("Total Clicks : ",resp.clicks);
    }
    else
    {
        console.log("Stats Error !!");
    }
});
}).on('error',function(e){
    console.log("Got an error ",e);
});

现在,以下是我的代码输出:

C:\node-shtr-module>node index.js http://shtr.ml/ZVFWdk


{"message":"Success","short-url":"http://shtr.ml/ZVFWdk","long-url":"https://github.com/beingadityak/dot-net-mysql","created":"2016-09-27 22:58:06","clicks":"21"}

Short URL :  NaN
Long URL :  NaN
Creation Date :  2016-09-27 22:58:06
Total Clicks :  21

为什么即使JSON包含URL,resp.short-url也会返回NaN?请帮忙。

一如既往,提前谢谢。

1 个答案:

答案 0 :(得分:2)

使用它访问它 resp['short-url']resp['long-url']