这篇文章主要介绍”BIRT如何使用rest api接口获取json做报表”,在日常操作中,相信很多人在BIRT如何使用rest api接口获取json做报表问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答“BIRT如何使用rest api接口获取json做报表”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
BIRT中不能构建json数据源,虽然一些开源社区提供了解析json数据源插件,但几乎所有插件都非常底层,并且使用起来很不方便,因此并不值得推荐。
BIRT的常规办法是创建一个“脚本数据源”,在该脚本源上连接到URL并自行解析结果,但脚本写起来非常麻烦,而且工作量很大。
比如要处理这么个场景:根据传入参数,调用rest api,返回嵌套的json数据,部分数据格式如下:
(
,,,{
,,,,,,,“id": 1000,
,,,,,,,“content":“太hot",
,,,,,,,“comment": [
,,,,,,,,,,,{
,,,,,,,,,,,,,,,“author":“joe",
,,,,,,,,,,,,,,“score": 3,
,,,,,,,,,,,,,,,“comment":“不过如此!“
,,,,,,,,,,,},
,,,,,,,,,,,{
,,,,,,,,,,,,,,,“author":“jimmy",
,,,,,,,,,,,,,,,“score": 5,
,,,,,,,,,,,,,,,“comment":“酷!好!“
,,,,,,,,,,,}
,,,,,,,)
}
…
)期望解析后的效果:
BIRT使用open()方法创建脚本化数据源,如下所示:
…
importPackage (Packages.java.io);
importPackage (Packages.java.net),
var参数=params [“industryname"] value;
var生态基=新的URL (“http://yourapi/endpoint/"+ param) .openStream ();
var inStreamReader=new InputStreamReader(生态基);
var bufferedReader=new bufferedReader (inStreamReader);
var行;
=皏ar结果;“;
, ((=bufferedReader.readLine行())!=null)
结果+=线;
inStream.close ();
var json=JSON.parse(结果);
var (“HTMLJSON")=json;
记录器。警告(结果);
…
建议使用集算器,它将HTTP服务的url串的返回结果封装成文件流,可直接解析JSON格式字符串并结构化为序表。集算器精心设计了一套集合运算领域的函数库,以应对结构化后的各类运算,比如分组,排的序,过滤,聚合,连接等,不再需要第三方数据库来协助。比如上面的问题,集算器脚本只需3行:
=1 httpfile (“http://yourapi/endpoint/servlet/testServlet?table=blog&类型=json")
=2 JSON(文件(A1) .read ())
3
=A2.news(评论;id、内容$ {A2.comment.fname () .concat@c ()})
最后将计算结果返回给BIRT数据集的进行报表展现。从此示例来看,相比较于常规办法,实现同样的算法只需更少的代码,分步执行调试也方便。
到此,关于“BIRT如何使用rest api接口获取JSON做报表”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!