如何使用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它。

顺便说一句,你可以使用现有的雅虎金融实现节点,并避免重写它拥有。