我想在 Jasper 报告中使用来自 DSpace REST API 的数据。我已成功创建类型为“JSON 文件”的数据适配器,并提供资源 URL 并将 GET 设置为请求类型。当我在报告中使用该数据适配器时,我可以编辑其选项,当我在 Jaspersoft Studio 中单击“读取字段”时,我会按照预期看到根据我的请求的嵌套 JSON 对象树。
我现在想在报告的字段中使用不同级别的 JSON。这对于顶级值来说效果很好,但是,当我尝试使用点表示法访问嵌套值时,报告中不会显示任何数据。
示例:
<field name="sections.publications_result.dc.title.value" class="java.lang.String">
<property name="net.sf.jasperreports.jsonql.field.expression">
<![CDATA[sections.result.dc.title.value]]>
</property>
</field>
如何获取嵌套值?
最佳答案
问题是 JSON 响应的名称中有点 (.
)。我猜贾斯珀假设每个点代表一个子级别。您需要“转义”那些带有点的标识符。
例如,如果 dc.title
是一个标识符,
sections.result.dc.title.value
需要更改为
sections.result["dc.title"].value
在“字段表达式”中。
关于json - 使用点表示法访问具有嵌套 JSON 数据的 Jaspersoft Report 字段失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65083027/