【发布时间】:2017-06-05 04:22:12
【问题描述】:
我有这样的 json 对象
{
"data":[
{
"no":1,
"name" : "yuda",
"address" : "surabaya"
},
{
"no":2,
"name":"adi",
"address":"jakarta"
}
],
"comp_name":"TEST CORP",
"title":"Company employee",
"status":"success"
}
我使用 http rest API 为该 json 提供服务,我想使用 jasper 报告创建报告,如果我将其作为 url JsonQueryExecuterFactory.JSON_SOURCE 传递,我将成功。
我的问题是我不能在JSON_SOURCE 中包含会话cookie,我正在尝试的解决方案是在java 代码中创建一个http 请求,然后将它包含在JsonQueryExecuterFactory.JSON_INPUT_STREAM 中,但它不起作用,它只是显示空白页。即使我将参数从$P{net.sf.jasperreports.json.source} 更新为$P{JSON_INPUT_STREAM},它也不起作用。
【问题讨论】:
-
你试过这样的事情吗? stackoverflow.com/a/36455240/5292302,不清楚你目前是如何尝试传递数据源的,尝试创建一个minimal reproducible example
-
@PetterFriberg 我已经阅读了你对那个问题的回答,如果 json 只是标准 json 对象,它就可以工作,在我的情况下,“data”键中有 json 数组,我需要把 json表格内的数组。
-
好的,看看如何从主数据源stackoverflow.com/a/39401536/5292302为您的表创建
subDataSource -
如果您没有绑定到特定版本的 JasperReports,您的所有问题都可以使用最新(6.3.1)版本轻松解决:使用header properties,您可以为您的 URL 设置一个 cookie 标头;使用JSONQL,您可以访问嵌套的 JSON 数组,而无需创建额外的数据集。
-
@Narcis 请给我一些关于header properties的例子,我不知道怎么用。
标签: java json jasper-reports