需求:有些项目,后端为了减少压力会把数据处理放到前面去处理,比如后端从数据库查询出来原始的json数据直接返回给前面,如下
{
field: {
"CLOSETIME": 0,
"EXCHANGEID": 1,
"INSTRUMENTID": 2,
"NIGHTENDTIME": 3,
"NIGHTSTARTTIME": 4,
"NOONENDTIME": 5,
"NOONSTARTTIME": 6,
"OPENTIME": 7
},
rows: [
[
'null',
"SHFE",
"sp",
"23:00:00",
"21:00:00",
'null',
'null',
'null'
],
[
'null',
"CZCE",
"SA",
"23:00:00",
"21:00:00",
'null',
'null',
'null'
],
[
'null',
"DCE",
"eb",
"23:00:00",
"21:00:00",
'null',
'null',
'null'
],
[
'null',
"SHFE",
"rb",
"23:00:00",
"21:00:00",
'null',
'null',
'null'
]
]
}
这种数据,filed里面告诉你表里面有多少个字段,rows的子数组有多少个代表有多少条数据,rows里面的每一个数据表示具体数据,和filed里面的字段相对应,比如field第一个是CLOSETIME,那他的第一条数据对应的值就是‘null’;
效果:
[
{CLOSETIME: 'null', EXCHANGEID: 'SHFE', INSTRUMENTID: 'sp', NIGHTENDTIME: '23:00:00', NIGHTSTARTTIME: '21:00:00', …},
{CLOSETIME: 'null', EXCHANGEID: 'CZCE', INSTRUMENTID: 'SA', NIGHTENDTIME: '23:00:00', NIGHTSTARTTIME: '21:00:00', …},
{CLOSETIME: 'null', EXCHANGEID: 'DCE', INSTRUMENTID: 'eb', NIGHTENDTIME: '23:00:00', NIGHTSTARTTIME: '21:00:00', …},
{CLOSETIME: 'null', EXCHANGEID: 'SHFE', INSTRUMENTID: 'rb', NIGHTENDTIME: '23:00:00', NIGHTSTARTTIME: '21:00:00', …}
]
具体实现
function parseJson(jsonObject) {
const field = jsonObject["field"];
const rows = jsonObject["rows"];
const list = [];
rows.forEach((item, i) => {
let itemOBJ = new Object;
for (const key in field) {
const value = field[key];
itemOBJ[key] = item[value]
}
list[i] = itemOBJ
});
return list;
}
结束!