Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将这两个异步发布的json对象组合成一个json字符串_Javascript_Json_Node.js - Fatal编程技术网

Javascript 将这两个异步发布的json对象组合成一个json字符串

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, [

我正在使用node.js雅虎财务模块检索苹果和谷歌的股票价格。这是可行的,代码如下所示

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,谢谢。它几乎起作用了。还需要一些调整。让我查一查。