Jquery 简化JSON树
我有一个脚本,其JSON结果如下:Jquery 简化JSON树,jquery,arrays,json,html-table,Jquery,Arrays,Json,Html Table,我有一个脚本,其JSON结果如下: [ [ [ "maturity_date", "12/19/2017" ], [ "interest_rate", 0.22 ], [ "interest_earned", 264 ], [ "management_fee", 5.28 ], [ "gross_earning",
[
[
[
"maturity_date",
"12/19/2017"
],
[
"interest_rate",
0.22
],
[
"interest_earned",
264
],
[
"management_fee",
5.28
],
[
"gross_earning",
1464
],
[
"investor_net_commission",
258.72
],
[
"investor_net_earning",
1458.72
]
],
[
[
"maturity_date",
"01/30/2018"
],
[
"interest_rate",
0.22
],
[
"interest_earned",
320.92
],
[
"management_fee",
6.42
],
[
"gross_earning",
1779.64
],
[
"investor_net_commission",
314.5
],
[
"investor_net_earning",
1773.22
]
],
[
[
"maturity_date",
"03/13/2018"
],
[
"interest_rate",
0.22
],
[
"interest_earned",
390.11
],
[
"management_fee",
7.8
],
[
"gross_earning",
2163.33
],
[
"investor_net_commission",
382.31
],
[
"investor_net_earning",
2155.53
]
]
]
我想将结构简化为如下所示的简单形式,以便将来可以将其显示在表中并存储在数据库表中。请注意,下面的结构是最重要的,仅使用一个数据集进行说明
[
{"maturity_date":"12/19/2017","interest_rate":0.22,"interest_earned":264,"management_fee":5.28,"gross_earning":1464,"investor_earning":1458.72},
{"maturity_date":"01/30/2018","interest_rate":0.22,"interest_earned":264,"management_fee":5.28,"gross_earning":1464,"investor_earning":1458.72},
{"maturity_date":"03/13/2018","interest_rate":0.22,"interest_earned":264,"management_fee":5.28,"gross_earning":1464,"investor_earning":1458.72},
]
堆栈溢出中已经有代码,如果结构像上面那样简化,我可以用它来创建表
for (var i=0; i<results.length; i++){
tr = $('<tr/>');
tr.append("<td>" + results[i].maturity_date + "</td>" );
tr.append("<td>" + results[i].interest_rate + "</td>" );
tr.append("<td>" + results[i].interest_earned + "</td>" );
tr.append("<td>" + results[i].management_fee + "</td>" );
tr.append("<td>" + results[i].gross_earning + "</td>" );
tr.append("<td>" + results[i].investor_net_commission + "</td>" );
tr.append("<td>" + results[i].investor_net_earning + "</td>" );
$('#compound_interest_table tbody').append(tr);
}
问题是:
我如何将初始结构简化为我所希望的结构
我觉得第一个JSON结构也可以在不简化它的情况下使用。如果我的理论是正确的,那么如何使用它修改表的Jquery脚本呢
我知道这个问题有点类似于JSON to table问题,但通读了这些问题后,我似乎无法理解最后一点,所以请帮助。
风险值数据=[
[
[
到期日,
12/19/2017
],
[
利率,,
0.22
],
[
利息收入,
264
],
[
管理费,
5.28
],
[
总收入,
1464
],
[
投资者净佣金,
258.72
],
[
投资者净收益,
1458.72
]
],
[
[
到期日,
01/30/2018
],
[
利率,,
0.22
],
[
利息收入,
320.92
],
[
管理费,
6.42
],
[
总收入,
1779.64
],
[
投资者净佣金,
314.5
],
[
投资者净收益,
1773.22
]
],
[
[
到期日,
03/13/2018
],
[
利率,,
0.22
],
[
利息收入,
390.11
],
[
管理费,
7.8
],
[
总收入,
2163.33
],
[
投资者净佣金,
382.31
],
[
投资者净收益,
2155.53
]
]
];
var newData=data.reducefunctioncollection,元素{
var rowData={};//创建一个新的空行
element.reducefunctioncollection,元素{
//将元素放入行中
rowData[element[0]]=元素[1];
返回行数据;
},行数据;
collection.pushrowData;//将行添加到结果中
回收;
}, [];
console.lognewData
风险值数据=[
[
[
到期日,
12/19/2017
],
[
利率,,
0.22
],
[
利息收入,
264
],
[
管理费,
5.28
],
[
总收入,
1464
],
[
投资者净佣金,
258.72
],
[
投资者净收益,
1458.72
]
],
[
[
到期日,
01/30/2018
],
[
利率,,
0.22
],
[
利息收入,
320.92
],
[
管理费,
6.42
],
[
总收入,
1779.64
],
[
投资者净佣金,
314.5
],
[
投资者净收益,
1773.22
]
],
[
[
到期日,
03/13/2018
],
[
利率,,
0.22
],
[
利息收入,
390.11
],
[
管理费,
7.8
],
[
总收入,
2163.33
],
[
投资者净佣金,
382.31
],
[
投资者净收益,
2155.53
]
]
];
var newData=data.reducefunctioncollection,元素{
var rowData={};//创建一个新的空行
element.reducefunctioncollection,元素{
//将元素放入行中
rowData[element[0]]=元素[1];
返回行数据;
},行数据;
collection.pushrowData;//将行添加到结果中
回收;
}, [];
console.lognewData 对于1,您可以使用和:
对于1,您可以使用和:
Map/reduce,其中列表是您在帖子中提供的结构:
list.map(function (propList) {
return propList.reduce(function (o, prop) {
o[prop[0]] = prop[1];
return o;
}, {});
});
Map/reduce,其中列表是您在帖子中提供的结构:
list.map(function (propList) {
return propList.reduce(function (o, prop) {
o[prop[0]] = prop[1];
return o;
}, {});
});
2可能会起作用,但我会反对它,因为2的任何解决方案要么是基于元素位置的脆弱解决方案,要么是具有查找元素的逻辑。将初始布局更改为您描述的布局会更好,imho。@Taplar是的,我想更改的另一个原因是使搜索更容易,即使脚本运行时原始结构始终相同……2可能可以工作,但我反对它,因为2的任何解决方案要么是基于元素位置的脆弱方案,要么是具有查找元素的逻辑。将初始布局更改为您描述的布局会更好,imho。@Taplar是的,我想更改的另一个原因是使搜索更容易,即使脚本运行时原始结构始终相同……感谢您的回答,因为Taplar将他/她的答案放在第一位,并且是正确的,我给了它打勾。谢谢上面链接的资源:-谢谢你的回答,Si 恩斯·塔普拉把他/她的答案放在第一位,如果答案正确,我就给它打勾。感谢以上链接的资源:-