BIRT报告JSON数组打印值

问题描述

我正在尝试将Birt报表中的JSON值从数据库列打印成多行。它可以很好地打印JSON数组的最后一行,但不能打印出它前面的行。

我的动态文本字段代码:

var phone = JSON.parse(row["c_numbers"]);
for(var k in phone) {
    phone[k]['type']+': '+phone[k]['phone']
}

它是打印出来的:

enter image description here

这是数据库中的JSON:

[{"type": "Cell","phone": "123-123-1233"},{"type": "","phone": "123-423-4123"}]

最简单的方法就是将其打印出来,但它所做的只是最后一个数组项。报表设计:

enter image description here

因此它正在获取数据,遍历JSON并打印,但不是所有数组项,而是最后一个。

解决方法

答案是将新数据分配给新变量,然后在最后打印出最终变量。我还必须在每个输出的末尾添加<br>作为换行符。

var phone = JSON.parse(row["c_numbers"]);
var finalPhone = '';

for(var k in phone) {
    finalPhone = finalPhone+(phone[k]['type'] > '' ? phone[k]['type']+': ' : '')+phone[k]['phone']+"<br>"
}

finalPhone;

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...