gpt4 book ai didi

java ireport 将 json 作为表达式传递

转载 作者:行者123 更新时间:2023-12-01 08:48:45 27 4
gpt4 key购买 nike

我正在关注this将 json 传递到 jrxml 的教程。我的虚拟 json 文件成功解析为漂亮的报告。

但是我在将 json 代码传递给 jrxml 时遇到问题。在this教程中有如下图的配置

datasource

我尝试像这样传递 json

Map<String,Object> params = new HashMap<String,Object>();

String sPath = "/reports/master_standar_test_kertas.jrxml";
URL uReport = this.getClass().getResource(sPath);

String sJson = "{\"parameter\": { \"status\":\"success\" },\"data\":[{\"kode\":\"001\",\"title\":\"ENAMEL\"}]}";
System.out.println((new JSONObject(sJson)));
InputStream is = new ByteArrayInputStream(sJson.getBytes());
JsonDataSource source = new JsonDataSource(is);

params.put(JsonQueryExecuterFactory.JSON_SOURCE, is);

JasperReport jr = JasperCompileManager.compileReport(uReport.getPath());
JasperPrint jpPrint = JasperFillManager.fillReport(jr, params,source);
JasperViewer jpView = new JasperViewer(jpPrint);

但我收到错误

net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression for source text: $P{net.sf.jasperreports.json.source}

我的问题:

  1. 我确信我的代码是错误的,但我不知道确切的错误代码
  2. 我真的很想了解 jasperreport 是如何工作的,但我是 java 新手,有什么教程可以阅读...?

最佳答案

  1. 我会尝试设置 JsonQueryExecuterFactory.JSON_INPUT_STREAM参数,因为它似乎正是您所需要的。 JsonQueryExecuterFactory.JSON_SOURCE参数只能是:

    • 类路径上的资源
    • 文件系统中的文件,具有绝对或相对路径
    • 网址
  2. 用于熟悉 JasperReports 的大部分资源都可以在 Jaspersoft Community 上找到。网站。您可能会发现有用:

关于java ireport 将 json 作为表达式传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42523443/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com