我正在尝试将Quandl提供的JSON数据转换为自定义JSON格式,以便将其加载到我的数据库中。
JSON数组是具有日期,高,低,开盘价,收盘价的股票市场数据。我需要一个扁平的JSON而不是数组。
我尝试了以下操作,但它返回完整数组而不是单个元素。如果我使用[0] [1],[0] [2],它将返回空值。
这是我的code
var DataTransform = require("node-json-transform").DataTransform
var myData = {"dataset":{"data":[["2016-01-15",292.5,294.4,267.1,279.9,273.0,64104.0,182.09],["2016-01-14",288.0,302.0,265.0,287.6,288.2,68271.0,199.82],["2016-01-13",303.95,307.65,275.0,290.1,292.75,99921.0,293.08]]}}
var map = {
list : 'dataset.data',
item: {
date: [0],
high: [0][1],
low: [0][0][1]
}
};
var dataTransform = DataTransform(myData, map);
var result = dataTransform.transform();
console.log(result);
=============================================== =======================
[{"日期":[[" 2016年1月15日",292.5,294.4,267.1,279.9,273,64104,182.09]]"&高#34;:"""低":""},{"日期":[[" 2016- 01-14",288,302,265,287.6,288.2,68271,199.82]]"高":"""低":"&# 34;},{"日期":[[" 2016年1月13日",303.95,307.65,275,290.1,292.75,99921,293.08]]"高&#34 ;:"""低":""}]
答案 0 :(得分:1)
您应该使用内置的 Array 函数来转换数据。例如映射,缩小,过滤,排序等。在这种情况下, map 将完美地完成工作。 e.g。
var ds = {"dataset":{"data":[["2016-01-15",292.5,294.4,267.1,279.9,273.0,64104.0,182.09],["2016-01-14",288.0,302.0,265.0,287.6,288.2,68271.0,199.82],["2016-01-13",303.95,307.65,275.0,290.1,292.75,99921.0,293.08]]}}
var transformed = ds.dataset.data
.map(function (d) {
return {
date : d[0],
high : d[1],
low : d[2],
etc:
}
})
// output in format : [{date:"2016-01-15",high:"294.4",low:"267.1"},...]