JSON数据源 - 子阵列

时间:2014-08-19 12:39:18

标签: arrays json jasper-reports datasource

我正在使用 iReport 来设计 JasperReports 模板。我必须使用 json 数据源。让我们举个例子。假设我的 json 数据源是:

{
    "field1" : "value1",
    "list" : [
        {
            "field3" : "value3"
        },
        {
            "field3" : "value4";
        }
    ]
}

然后我创建 json 数据源,只是指向带有数据的文件;在此之后,我创建一个查询字符串:

<queryString language="json">
    <![CDATA[list]]>
</queryString>
<field name="field3" class="java.lang.String">
    <fieldDescription><![CDATA[field3]]></fieldDescription>
</field>

通过以下方式,我可以打印一个值列表(所以我的报告打印值为3,然后是值4):

<textField>
    <reportElement x="74" y="20" width="100" height="20" uuid="b88d96bc-87bd-4dfd-a246-1898dfec1f4a"/>
    <textFieldExpression><![CDATA[$F{field3}]]></textFieldExpression>
</textField>

不幸的是,我无法复制相同的行为,以防我想显示“field1”(所以我不能使用queryString“list”,因为我也想使用列表外的数据)。< / p>

你有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用指定的索引

<queryString language="json">
    <![CDATA[]]>
</queryString>
<field name="field3" class="java.lang.String">
    <fieldDescription><![CDATA[list[0].field3]]></fieldDescription>
</field>