繁体   English   中英

如何使用node.js从Yahoo Finance JSON中提取数据?

[英]How do I extract data from a Yahoo Finance JSON using node.js?

我构建了一个简单的请求函数来从Yahoo Finance API获取JSON,但是在从JSON中提取数据时遇到了麻烦。

这是我的功能

var request = require("request");

var stock_url = "http://finance.yahoo.com/webservice/v1/symbols/FB/quote?format=json&view=%E2%80%8C%E2%80%8Bdetail";

request(stock_url, function (error, response, body) { 
    if (!error && response.statusCode == 200) {  
        var stock_data = body;
        console.log("Yahoo Finance API: ", stock_data)
        var stock_price = stock_data.list.resources[0].resource.fields.price;
        console.log("stock_price: ", stock_price);       
    };
});

返回的JSON成功存储在var stock_data ,然后我尝试使用var stock_price = stock_data.list.resources[0].resource.fields.price提取“价格”数据,但我得到一个TypeError:无法读取属性'resources'未定义的。

下面是JSON,我尝试了var stock_price多个衍生品, var stock_price没有运气。 任何帮助深表感谢。

{
  "list": {
    "meta": {
      "type": "resource-list",
      "start": 0,
      "count": 1
    },
    "resources": [
      {
        "resource": {
          "classname": "Quote",
          "fields": {
            "name" : "Facebook, Inc.",
            "price" : "116.620003",
            "symbol" : "FB",
            "ts" : "1465588800",
            "type" : "equity",
            "utctime" : "2016-06-10T20:00:00+0000",
            "volume" : "18510826"              
          }
        }
      }
    ]
  }
}

请求body返回为字符串值。

然后,您应该使用var stock_data = JSON.parse(body)解析它。

顺便说一下,你可以使用现有的yahoo-finance实现节点,避免重写你拥有的节点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM