如何在使用 JSON 数据源的碧玉报告中获取嵌套值作为字段

How to get nested value as a field in jasper report that uses JSON data source

我正在使用 JSON 数据源进行报告。我尝试创建图像元素并给出其表达式 base64 字符串。它在 JSON 的第二级,但由于报告查询,Jasper 将第一级显示为字段。例如,查询是 product 级别,而 Jasper 仅显示 nameprice 作为字段。我想在 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>