需要使用JSON传递REST v2 API的Jasper Reports参数的示例

sta*_*art 4 python parameters rest json jasperserver

当我查看将参数传递给Jasper Report REST 2 API的文档时:http://community.jaspersoft.com/documentation/jasperreports-server-web-services-guide/v550/running-report-asynchronously我看到了我需要一个"参数"字典.链接中的示例显示了XML并不是那么有用,因为它不清楚具体的JSON应该是什么样子.我能找到的最接近的链接是:http://community.jaspersoft.com/documentation/jasperreports-server-web-services-guide/v56/modifying-report-parameters.现在,我将相应的内容发送到服务器(以及我能想到的所有其他排列),然后我继续得到"400 Client Error:Bad Request".我真的可以使用python代码的确切示例来生成所需的"参数"参数,例如"my_parameter_1 ="test_value_1".

这是我目前的POST数据(为简洁起见,缺少一些参数).我知道这是正确的,因为如果我省略"参数"参数,报告工作正常:

    {
      'outputFormat': 'pdf', 
      'parameters': [{'name': 'ReportID', 'value': ['my_value_1']}], 
      'async': 'true', 
      'pages': '', 
      'interactive': 'false'
    }
Run Code Online (Sandbox Code Playgroud)

Jac*_*eur 6

斯塔加特的好工作.我现在明白了.因为我没有最大限度地阅读 审查,我浪费了一些额外的时间.因此,感兴趣的编码器不仅被建议知道嵌套的,语法上有趣的reportParameter-property,而且特别是内部的value-property是一个数组.我想在这里可以通过某种形式的列表/数组/集合?

令我恼火的是,如果我应该构建多个"reportParameter"属性,但根据JSON语法是否允许对象中的重复键,这将是无稽之谈 .

所以只是为了记录,如何发布多个参数:

{
    "reportUnitUri": "/reports/Top10/Top10Customers",
    "async": true,
    "freshData": true,
    "saveDataSnapshot": false,
    "outputFormat": "pdf",
    "interactive": false,
    "ignorePagination": true,
    "parameters": {
        "reportParameter": [
            {
                "name": "DATE_START_STRING",
                "value": ["14.07.2014"]
            },
            {
                "name": "DATE_END_STRING",
                "value": ["14.10.2014"]
            }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

如果有人意外地通过REST和PHP与jasper沟通.帮自己一个忙,并使用PHP请求而不是纯粹的CURL.它甚至有内部使用套接字而不是CURL的后备,当后者不可用时.

为你Staggart Upvote.


sta*_*art 5

好的,感谢rafkacz1 @ http://community.jaspersoft.com/questions/825719/json-equivalent-xml-post-reportexecutions-rest-service发布了答案,我想通了.当他在那里报告时,所需的格式是:

    "parameters":{
         "reportParameter":[
             {"name":"my_parameter_1","value":["my_value_1"]}
          ]
     }
Run Code Online (Sandbox Code Playgroud)

要特别注意多个" reportParameter ".