json - 使用点表示法访问具有嵌套 JSON 数据的 Jaspersoft Report 字段失败

标签 json api rest jasper-reports dspace

我想在 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/

相关文章:

json - 如何解码包含数组 Swift 4 的 JSON 文件?

c# - 遍历 JSON 数组列表

php - 为静态 IP 地址 API 服务器添加了 SSL

Python 请求 PUT 不起作用,但 cURL 起作用

web-services - 浏览器的 CRUD URL 设计(非 REST)

javascript - 使用 reduce 遍历 JSON

javascript - KineticJS:保存到 JSON:对象保存多次

android - 用于英语以外语言的 Google 语音转文本 API

Facebook 职位 API

iOS swift JSON 到类对象