来自JasperReports-
JSON数据源示例(版本6.4.3)
内置JSON查询执行程序(请参阅JsonQueryExecuter类)是一种工具,该工具根据特定的内置参数(或等效的报表属性)使用查询字符串生成JsonDataSource实例。该查询执行器通过JsonQueryExecuterFactory工厂类注册。为了准备数据源,JSON查询执行程序查找JSON_INPUT_STREAM参数,该参数包含java.io.InputStream形式的JSON源对象。如果未提供JSON_INPUT_STREAM参数,则查询执行程序将查找备用net.sf.jasperreports.json.source字符串参数或report属性,该参数或报告属性存储JSON源文件位置的路径。JsonQueryExecuter在输入源上运行查询,并将结果存储在内存中的JsonDataSource对象中。
因此,如果您不想使用:
<property name="net.sf.jasperreports.json.source" value="emp.json"/>
您需要
java.io.InputStream按照参数传递文件
JSON_INPUT_STREAM
因此,您当前正在将其作为数据源传递,应该尝试这样的操作
params.put(JsonQueryExecuterFactory.JSON_INPUT_STREAM, new FileInputStream(file));JasperFillManager.fillReportToFile(jasperReport, params);
相反,如果您想使用新的
JsonQLQueryExecuterFactory
JSONQL数据源
params.put(JsonQLQueryExecuterFactory.JSON_INPUT_STREAM, new FileInputStream(file));JasperFillManager.fillReportToFile(jasperReport, params);



