Jquery 简化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",

我有一个脚本,其JSON结果如下:

[
  [
    [
      "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 恩斯·塔普拉把他/她的答案放在第一位,如果答案正确,我就给它打勾。感谢以上链接的资源:-