Javascript 将这两个异步发布的json对象组合成一个json字符串
我正在使用node.js雅虎财务模块检索苹果和谷歌的股票价格。这是可行的,代码如下所示Javascript 将这两个异步发布的json对象组合成一个json字符串,javascript,json,node.js,Javascript,Json,Node.js,我正在使用node.js雅虎财务模块检索苹果和谷歌的股票价格。这是可行的,代码如下所示 var util = require('util'); require('colors'); var _ = require('lodash'); var yahooFinance = require('yahoo-finance'); var FIELDS = _.flatten([ //symbol,name, lastTradeDate, lastTradePriceOnly, [
var util = require('util');
require('colors');
var _ = require('lodash');
var yahooFinance = require('yahoo-finance');
var FIELDS = _.flatten([
//symbol,name, lastTradeDate, lastTradePriceOnly,
['s', 'n', 'd1', 'l1']
]);
var SYMBOLS = [
'AAPL',
'GOOG',
];
yahooFinance.snapshot({
fields: FIELDS,
symbols: SYMBOLS
}).then(function (result) {
_.each(result, function (snapshot, symbol) {
console.log(JSON.stringify(snapshot, null, 2));
});
});
console.logJSON.stringifysnapshot的输出,null,2;最后看起来像这样
{
"symbol": "AAPL",
"name": "Apple Inc.",
"lastTradeDate": "2015-11-03T16:00:00.000Z",
"lastTradePriceOnly": 122
}
{
"symbol": "GOOG",
"name": "Alphabet Inc.",
"lastTradeDate": "2015-11-03T16:00:00.000Z",
"lastTradePriceOnly": 728.11
}
[{
"symbol": "AAPL",
"name": "Apple Inc.",
"lastTradeDate": "2015-11-03T16:00:00.000Z",
"lastTradePriceOnly": 122
},
{
"symbol": "GOOG",
"name": "Alphabet Inc.",
"lastTradeDate": "2015-11-03T16:00:00.000Z",
"lastTradePriceOnly": 728.11
}]
问题是,它看起来像json,但仍然不是格式正确的json
所需的json如下所示
{
"symbol": "AAPL",
"name": "Apple Inc.",
"lastTradeDate": "2015-11-03T16:00:00.000Z",
"lastTradePriceOnly": 122
}
{
"symbol": "GOOG",
"name": "Alphabet Inc.",
"lastTradeDate": "2015-11-03T16:00:00.000Z",
"lastTradePriceOnly": 728.11
}
[{
"symbol": "AAPL",
"name": "Apple Inc.",
"lastTradeDate": "2015-11-03T16:00:00.000Z",
"lastTradePriceOnly": 122
},
{
"symbol": "GOOG",
"name": "Alphabet Inc.",
"lastTradeDate": "2015-11-03T16:00:00.000Z",
"lastTradePriceOnly": 728.11
}]
如何更改代码以获得所需的json输出?这是一个棘手的问题,因为每个json对象都是按任务异步释放的,而不是一次全部释放。多亏了ojovirtua的评论,我找到了答案
yahooFinance.snapshot({
fields: FIELDS,
symbols: SYMBOLS
}).then(function (result) {
console.log(JSON.stringify(result));
});
根据您的代码,Results已经是一个数组,请尝试console.logJSON.stringifyresult,这就是您所期望的。@ojovirtual,谢谢。它几乎起作用了。还需要一些调整。让我查一查。