【问题标题】:How to get nested value as a field in jasper report that uses JSON data source如何在使用 JSON 数据源的 jasper 报告中获取嵌套值作为字段
【发布时间】:2019-06-20 11:20:45
【问题描述】:

我正在使用 JSON 数据源进行报告。我尝试创建图像元素并给出它的表达式 base64 字符串。它位于 JSON 的第二级,但由于报告查询,Jasper 将第一级显示为字段。例如,查询是 product 级别,Jasper 仅将 nameprice 显示为字段。我想在someObject 中提供logo 字段,但我无法达到那个水平。我不能使用子报表,我的工作环境不允许我这样做。那么我怎样才能达到这个值呢?

{
    "product": {
            "name": "Oreo",
            "price": "$1.25",
            "someObject": {
                    "logo": "Base64 string"
            }
    }
}

【问题讨论】:

    标签: json jasper-reports datasource


    【解决方案1】:

    您需要手动将字段的 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>
    

    【讨论】:

    • 感谢回复,现在在字段中可见,但值返回 null。我在文本字段中尝试了一些短字符串并返回 null。
    • 我已修复,我使用了错误的数据适配器,它正在工作,感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2015-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多