我正在使用node.js并使用Jade作为模板引擎。 我收到了来自API的JSON响应。
相当标准。 这就是它的样子:
Rows:
{ Row:
[ { Header:
{ ColData:
[ { value: 'GS & CO' },
{ value: '' },
{ value: '' },
{ value: '' },
{ value: '' },
{ value: '' },
{ value: '' } ] },
Rows:
{ Row:
[ { ColData:
[ { value: '01/31/2014' },
{ value: 'Bill' },
{ value: 'FY/2013-01/2014' },
{ value: '01/31/2014' },
{ value: '9963.14' },
{ value: '9963.14' },
{ value: '9963.14' } ],
type: 'Data' },
{ ColData:
[ { value: '02/28/2014' },
{ value: 'Bill' },
{ value: '02/2014' },
{ value: '02/28/2014' },
{ value: '6378.14' },
{ value: '6378.14' },
{ value: '16341.28' } ],
type: 'Data' },
{ ColData:
[ { value: '03/31/2014' },
{ value: 'Bill' },
{ value: '03/2014' },
{ value: '03/31/2014' },
{ value: '2556.0' },
{ value: '2556.0' },
{ value: '18897.28' } ],
type: 'Data' },
Summary:
{ ColData:
[ { value: 'Total for GS & CO' },
{ value: '' },
{ value: '' },
{ value: '' },
{ value: '27567.44' },
{ value: '27567.44' },
{ value: '' } ] },
type: 'Section' },
在我的服务器(app.js)中,我将JSON传递给视图,如下所示:
res.render('home.jade', {title: "hello",
reportname: report["Header"]['ReportName'],
daterange: "From:"+report["Header"]["StartPeriod"]+" to: "+report["Header"]["EndPeriod"],
alldata: report,
columns: report["Columns"],
rowsperclient: report["Rows"]["Row"]
});
在我看来,我正在尝试使用JSON提供给我的列和行数据来构建表。当我想要遍历每个Header
的{{1}}部分时,我正在撞墙。
Row
这给了我以下HTML输出:
// First loop returns total number of records
// for our API call
each row, idx in rowsperclient
each header, idx2 in row
h5= idx2 +" -> "+rowsperclient[idx]
我要做的是显示每个标题的第一个值 - 这是公司名称。
然后我想循环遍历Header -> [object Object]
Rows -> [object Object]
Summary -> [object Object]
并相应地显示它。
我无法弄清楚如何绕过每行的ColData
部分。
答案 0 :(得分:0)
您可能想要做类似
的事情each cell, idx in rowsperclient.Header.ColData
h5= idx +" -> "+ cell.value
或者喜欢
each row in rowsperclient.Rows.Row
each cell, idx in row.ColData
h5= rowsperclient.Header.ColData[idx].value +" -> "+ cell.value
顺便说一下,结构的名称确实很糟糕(行中的行,“行”(变量名不带多个)用于集合,“行”用于非集合,......)。这使得开发和可维护性变得更加困难。