kettle web服务查询 webservice 字符串转json

起因

公司业务需求,需要使用kettle调用webservice接口 ,返回需要的数据,使用kettle的 web服务查询 功能进行实现。由于也是首次使用kettle的web服务查询功能,查阅了不少资料才实现功能,在此,实现过程分享给大家,希望大家可以少走弯路。

webservice接口分析

既然需要调用webservice接口,首先我们就要了解所调用的接口的接口名称、所需参数的类型和个数、返回结果的类型和个数,才能针对具体情况具体分析。以下是的介绍webservice的组成结构:
在这里插入图片描述
图中所知:所需接口的名称toProbeData,接口参数名称type类型int,返回结果名称toProbeDataReturn类型string。这里请大家进行记录,因为参数和返回值的名称和类型下面会用到。

kettle组件使用

根据以上接口,我们可获知需要使用的kettle组件:

1.生成记录组件(目的是为了个web组件提供参数)
2.web服务查询组件(调用webservice接口)
3.xml文件输入组件(获取webservice的返回值)
4.JSON输入组件(解析webservice的返回值)
5.文本文件输出组件(输出结果集)

1.生成记录组件

在这里插入图片描述
自定义参数名称(该参数名第二步会用到)输入至图中位置,参数类型进行选择,值为参数值,即接口所需参数值,我调用的接口参数值为1或4,在此我只进行参数值为1的查询。

2.web服务查询组件

1.将webservice接口填入URL中,点击加载按钮,下方操作会出现当前service的所有接口,选择需要使用的接口。在这里插入图片描述2.选择in选项卡,点击获取字段,名称选择第一步输入的参数名即可。在这里插入图片描述
3.选择toProbeDataReturn选项卡,手动输入名称(第三步会用到)、WS名称(即接口返回结果名称)、WS类型(即接口返回结果类型)。
在这里插入图片描述点击确定,至此,web服务查询结束。

在进行数据处理之前,您需获知webservice的返回数据,下图为我调用的接口返回:
在这里插入图片描述
红色框即为返回的数据,可知,返回的数据也是xml格式,返回的数据在toProbeDataReturn字段中。
由于接口返回的数据类型为xml。因此第三步我选用xml文件输入组件。

3.xml文件输入组件

选择xml文件输入组件,XML源字段名中,选择第二步中输入的名称。
在这里插入图片描述
点击内容选项卡,点击 获取XML文档的所有路径。将webservice的返回结果toProbeDataReturn字段中的数据粘贴至红框内,进行分析。
在这里插入图片描述
按照返回结果的结构进行分析,我这里选择 /soapenv:Envelope/soapenv:Body
在这里插入图片描述
选择 字段 选项卡,点击获取字段,输入名称(第四步要用到),xml的路径(我需要的数据在*[name()=‘toProbeDataResponse’]/*[name()=‘toProbeDataReturn’]中)
在这里插入图片描述
点击确定,至此,xml文件输入组件结束。

4.JSON输入组件

第三步结束之后,终于可以看到我需要的数据了!数据格式为JSON数组。但此时我只是获取了JSON格式的字符串,因此我还需要利于JSON输入组件,将JSON格式的字符串转化为可使用的结果集,方便与其他结果集进行连接。
在这里插入图片描述
1.选择JSON输入组件,从字段获取源选择第三步输入的名称。
在这里插入图片描述
字段根据JSON自行输入,名称可自定义,路径为*.名称:
例:JSON字符串中有probecode字段,名称为probecode,路径为*.probecode
在这里插入图片描述
点击确定,至此,JSON输入组件结束。

4.文本文件输出组件

在这里插入图片描述

JSON输入组件会将JSON格式的字符串转换为结果集,后期会将该结果集与其他结果集进行连接,目前仅将转化后的JSON数据进行了输出,输出格式正确。
在这里插入图片描述
下图为使用的所有组件:
在这里插入图片描述

以上,仅供参考,如有问题,请多指正。

参考文档

kettle webservice 接口数据抽取
kettle:实现xml输入text,csv,excel,json,表---->输出
通过Kettle工具解析Json接口数据并且保存到数据库中的详细操作
kettle庖丁解牛第13篇之XML文件输入

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值