如何使用node.js从Yahoo Finance JSON提取数据?
我构build了一个简单的请求函数来从Yahoo Finance API获取JSON,但是无法从JSON中提取数据。
这是我的function
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
来提取“price”数据,但得到TypeError:无法读取属性'resources'未定义。
下面是JSON,我已经尝试了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
作为string值。
你应该使用var stock_data = JSON.parse(body)
parsing它。
顺便说一句,你可以使用现有的雅虎金融实现节点,并避免重写它拥有。