Java 表字段的JsonDataSource获取空Jasper报告
我不熟悉贾斯珀报告。 我正在尝试从一个子文件生成一个pdf,其中包含一些信息,如名称、类等和数组标记。我正在尝试将marks数组呈现为一个表。我的JSON是Java 表字段的JsonDataSource获取空Jasper报告,java,json,jasper-reports,Java,Json,Jasper Reports,我不熟悉贾斯珀报告。 我正在尝试从一个子文件生成一个pdf,其中包含一些信息,如名称、类等和数组标记。我正在尝试将marks数组呈现为一个表。我的JSON是 {"data": {"name" : "Johny", "class" : "A2", "sub" : "cs", "interest" : "films", "marks" : [{ "subject" : "Maths", "mark" : "2
{"data": {"name" : "Johny",
"class" : "A2",
"sub" : "cs",
"interest" : "films",
"marks" : [{
"subject" : "Maths",
"mark" : "24",
"grade" : "A",
"remarks" : "",
"slNo" : "1"
},
{
"subject" : "English",
"mark" : "24",
"grade" : "A",
"remarks" : "",
"slNo" : "2"
},
]
}}
我已将子数据源表达式指定为
<dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource()]]></dataSourceExpression>
正在填充其他字段,但表值将变为null。从中找到答案
问题是我必须在dataSourceExpression中传递数组的键。因此,dataSourceExpression应该是
<dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("marks")]]></dataSourceExpression>
注意marks参数到subDataSource方法
<dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("marks")]]></dataSourceExpression>