温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

BIRT如何使用rest api接口获取json做报表

发布时间:2021-09-01 11:11:29 来源:亿速云 阅读:146 作者:chen 栏目:网络安全

这篇文章主要介绍“BIRT如何使用rest api接口获取json做报表”,在日常操作中,相信很多人在BIRT如何使用rest api接口获取json做报表问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”BIRT如何使用rest api接口获取json做报表”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

BIRT中不能构建JSON数据源,虽然一些开源社区提供了解析JSON数据源插件,但几乎所有插件都非常底层,并且使用起来很不方便,因此并不值得推荐。

BIRT的常规办法是创建一个“脚本数据源”,在该脚本源上连接到URL并自行解析结果,但脚本写起来非常麻烦,而且工作量很大。

比如要处理这么个场景:根据传入参数,调用REST API,返回嵌套的JSON数据,部分数据格式如下:

[

    {

        "id": 1000,

        "content": "It is too hot",

        "comment": [

            {

                "author": "joe",

                "score": 3,

                "comment": "just so so!"

            },

            {

                "author": "jimmy",

                "score": 5,

                "comment": "cool! good!"

            }

        ]

}

...

]

期望解析后的效果:

BIRT如何使用rest api接口获取json做报表

BIRT使用open()方法创建脚本化数据源,如下所示:

...

importPackage(Packages.java.io);

importPackage(Packages.java.net);

var param= params["industryname"].value;

var inStream = new URL("http://yourapi/endpoint/" + param).openStream();

var inStreamReader = new InputStreamReader(inStream);

var bufferedReader = new BufferedReader(inStreamReader);

var line;

var result = "";

while ((line = bufferedReader.readLine()) != null)

result += line;

inStream.close();

var json = JSON.parse(result);

vars["HTMLJSON"] = json;

logger.warning (result);

...

建议使用集算器,它将HTTP服务的url串的返回结果封装成文件流,可直接解析JSON格式字符串并结构化为序表。集算器精心设计了一套集合运算领域的函数库,以应对结构化后的各类运算,比如分组、排序、过滤、聚合、连接等,不再需要第三方数据库来协助。比如上面的问题,集算器脚本只需3行:


A

1

=httpfile("http://yourapi/endpoint/servlet/testServlet?table=blog&type=json")

2

=json(file(A1).read())

3

=A2.news(comment;id,content,${A2.comment.fname().concat@c()})

最后将计算结果返回给BIRT的DataSet进行报表展现。从此示例来看,相比较于常规办法,实现同样的算法只需更少的代码,分步执行调试也方便。

到此,关于“BIRT如何使用rest api接口获取json做报表”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI