Как получить вложенное значение в виде поля в отчете jasper, который использует источник данных JSON - PullRequest
0 голосов
/ 20 июня 2019

Я использую источник данных JSON для отчета. Я пытаюсь создать элемент изображения и дать его выражение строки base64. Он находится на втором уровне JSON, но из-за запроса отчета Jasper показывает первый уровень в виде поля. Например, запрос имеет уровень product, а Jasper отображает только name и price в качестве полей. Я хочу дать logo поле в someObject, но я не могу достичь этого уровня. Я не могу использовать подотчеты, моя рабочая среда не позволяет мне это делать. Так как же мне добраться до поля, чтобы получить это значение?

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

1 Ответ

0 голосов
/ 20 июня 2019

Вам нужно вручную установить выражение 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>
...