Javascript 解析nodeJS中的Coinmarketcap JSON数组

Javascript 解析nodeJS中的Coinmarketcap JSON数组,javascript,node.js,Javascript,Node.js,我正在开发一个网站来展示一些加密货币。一些 我从Coinmarkepcap API()中得到了这些 我使用的nodeJS代码如下所示: var https = require('https'); var optionsget = { host : 'api.coinmarketcap.com', port : 443, path : '/v1/ticker/bitcoin', method : 'GET' }; var reqGet = https.re

我正在开发一个网站来展示一些加密货币。一些 我从Coinmarkepcap API()中得到了这些

我使用的nodeJS代码如下所示:

var https = require('https'); 

var optionsget = {
    host : 'api.coinmarketcap.com', 
    port : 443,
    path : '/v1/ticker/bitcoin', 
    method : 'GET'
};

var reqGet = https.request(optionsget, function(res) {

    res.on('data', function(d) {
        info = JSON.parse(d);
        console.log(info);
    });
});

reqGet.end();
reqGet.on('error', function(e) {
    console.error(e);
});
API返回以下数据:

[
    {
        "id": "bitcoin", 
        "name": "Bitcoin", 
        "symbol": "BTC", 
        "rank": "1", 
        "price_usd": "2256.82", 
        "price_btc": "1.0",  
        ... 
        "last_updated": "1496168353"
    }, 
    {
        "id": "ethereum", 
        "name": "Ethereum", 
        "symbol": "ETH", 
        "rank": "2", 
        "price_usd": "204.307", 
        "price_btc": "0.0902657", 
        ... 
        "last_updated": "1496168366"
    }, 
我得到以下错误:

SyntaxError: Unexpected token < in JSON at position 0
SyntaxError:JSON中位置0处的意外标记<
我注意到API的结果使用了一个括号[],里面有JSON

如何解析JSON数组,以便检索每个硬币的名称、价格、id等?

您必须替换:

var optionsget = {
    host : 'api.coinmarketcap.com', 
    port : 443,
    path : '/v1/ticker/bitcoin', 
    method : 'GET'
};
作者:

如果您没有包含尾随斜杠,网站将用尾随斜杠将您重定向到URL,https.request不会透明地处理重定向

您应该检查回调()中的HTTP状态代码:


向我们展示原始问题的回复数据,以提供相关信息
var optionsget = {
    host : 'api.coinmarketcap.com', 
    port : 443,
    path : '/v1/ticker/bitcoin/', 
    method : 'GET'
};
var reqGet = https.request(optionsget, function(res) {
    res.on('data', function(d) {
        if(res.statusCode == 200) {
            info = JSON.parse(d);
            console.log(info);
        } else {
            /* Do something else */
            console.log("!", res.statusCode);
        }
    });
});