如何在使用 JSON 数据源的碧玉报告中获取嵌套值作为字段
How to get nested value as a field in jasper report that uses JSON data source
我正在使用 JSON 数据源进行报告。我尝试创建图像元素并给出其表达式 base64 字符串。它在 JSON 的第二级,但由于报告查询,Jasper 将第一级显示为字段。例如,查询是 product
级别,而 Jasper 仅显示 name
和 price
作为字段。我想在 someObject
中提供 logo
字段,但我无法达到该级别。我不能使用子报表,我的工作环境不允许我这样做。那么我怎样才能达到现场获得那个价值?
{
"product": {
"name": "Oreo",
"price": ".25",
"someObject": {
"logo": "Base64 string"
}
}
}
您需要手动将字段的 JSON 表达式设置为:
<jasperReport...>
<queryString language="json">
<![CDATA[product]]>
</queryString>
...
<field name="someObjectLogo" class="java.lang.String">
<property name="net.sf.jasperreports.json.field.expression" value="someObject.logo"/>
<fieldDescription><![CDATA[Some Object Logo]]></fieldDescription>
</field>
...
</jasperReport>
我正在使用 JSON 数据源进行报告。我尝试创建图像元素并给出其表达式 base64 字符串。它在 JSON 的第二级,但由于报告查询,Jasper 将第一级显示为字段。例如,查询是 product
级别,而 Jasper 仅显示 name
和 price
作为字段。我想在 someObject
中提供 logo
字段,但我无法达到该级别。我不能使用子报表,我的工作环境不允许我这样做。那么我怎样才能达到现场获得那个价值?
{
"product": {
"name": "Oreo",
"price": ".25",
"someObject": {
"logo": "Base64 string"
}
}
}
您需要手动将字段的 JSON 表达式设置为:
<jasperReport...>
<queryString language="json">
<![CDATA[product]]>
</queryString>
...
<field name="someObjectLogo" class="java.lang.String">
<property name="net.sf.jasperreports.json.field.expression" value="someObject.logo"/>
<fieldDescription><![CDATA[Some Object Logo]]></fieldDescription>
</field>
...
</jasperReport>