通过Kettle工具解析Json接口数据并且保存到数据库中的详细操作
最近接到一个业务需求,要把一个Json接口数据获取下来并且保存到数据库中,考虑到应用代码实现功能需要耗费一定时间和精力,一旦需要修改,就得重启项目等。于是就选择利用Kettle工具来实现这个业务功能,将其从项目源码中分离为一个独立的功能模块,它的整体设计结构图如下:
说明:
生成记录:用于生成接口链接转化为一个文本字段,提供给所有步骤进行使用;
REST client:用于获取接口数据,形成一个Json文档结果集,并且在之后的步骤进行使用;
JSON input:用于解析json文档结果集,将json数据拆分成一个一个单独的字段;
表输出:用于将数据集的内容保存到数据库中;
JSON output:用于输出Json文档结果集,并且形成一个json或者txt等格式的文档;
上述图的“JSON output”步骤为额外步骤,主要是用于测试该模型是否能获取到接口数据,并且将数据进行正确地解析最后再利用。如果读者有添加到该步骤,可以用鼠标点击这个步骤的连线,将其变为灰色就不会执行该步骤。下面开始详细分析:
(一)获取接口链接的数据集
①生成记录:在kettle工具的输入->生成记录进行创建的,其具体填写内容如下:
说明:
限制:此处设置为1,是为了避免同一条链接会生成多个url结果,导致最终输出的结果有大量重复数据;
字段:将想要解析的接口链接填写到第一栏,并且填写任意名称(只要能标识当前接口链接即可);
②REST client:它在kettle工具的查询->REST client进行创建:,其具体填写内容如下:
说明:
按照图中勾选Accept URL from field,然后在URL field name中选择“生成记录”步骤所创建的字段“url”,默认请求方式为GET,并且设置结果集的名称为“result”。
值得注意的是 ,参照网上很多例子,大部分文章写的都是没有“生成记录”这个步骤,而是直接是创建“REST client”步骤获取接口数据,其填写内容如下:
即将接口链接直接放到“REST client”步骤进行获取,笔者亲测发现一直获取不到接口数据,这个有可能跟kettle版本有关,此处一笔带过,不具体分析。
(二)解析Json数据
解析Json数据主要是用到“JSON input”这个步骤,该步骤是在输入->JSON input进行创建的:
当然,在编写该步骤之前,我们首先得知道这个接口链接所得到的的Json数据是什么格式,我们需要拿到这个接口的什么数据,本文的接口数据如下所示:
通过上图的数据格式,我需要拿到的数据是接口数据里面data的结果集,于是“JSON output”步骤里面要填写的内容如下:
说明:
第一步,首先按照图示勾选“元定义在一个字段里”,然后在下方选择“REST client”步骤所定义的Json文档结果集。第二步,在“字段”这个窗口填写需要解析的字段内容,此处需要注意的是路径的填写,使用:
$..result
来获取json文档结果集。从本文的接口图可以看到,我们需要获取结果集的data属性,并且遍历data属性里面的数组对象数据,因此使用:
$..result.data[*]
最后再通过:
$..result.data[*].level
的方式获取遍历对象里面的属性值。
(三)保存到数据库
该步骤是在输出->表输出中进行创建的:
其填写内容如下所示:
首先点击“新建”,找到需要保存的数据库类型,填写相关的数据库连接信息,然后测试一下数据库连接是否正常。如果为正常,则点击确认,继续操作下一步。
接下来选择目标表,并且将数据库表字段如下图所示:
最后,点击运行即可。
假如获取的数据为空,请检查一下接口是否请求正常、是否需要设置Cookie或者token值、"JSON input"步骤填写的变量是否正确等,具体设置参数可以在“生成记录”步骤添加参数,然后在“REST client”步骤中的相关位置添加就行:如下所示:
通过Kettle工具解析Json接口数据并且保存到数据库中的详细操作相关推荐
- Python爬虫获取数据保存到数据库中(超级详细,保证一看就会)
1.简介介绍 -网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引. ...
- java 数据库数据写接口_Java读取接口数据并保存到数据库
public class Test05GetData { //guo sheng shi xian zhen cun的表结构完全一样.数据全部读取完毕之后再将数据整合到同一张表中 protected ...
- Java读取接口数据并保存到数据库
public class Test05GetData {//guo sheng shi xian zhen cun的表结构完全一样.数据全部读取完毕之后再将数据整合到同一张表中protected st ...
- 【Python使用】Python解析JSON数据的基本方法/用MATLAB解析json格式数据
一 JSON数据格式介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. JSON建构于两种结构:json是Javascript中的对象和数组中的对象, ...
- python中json模块_Python使用内置json模块解析json格式数据的方法
本文实例讲述了Python使用内置json模块解析json格式数据的方法.分享给大家供大家参考,具体如下: Python中解析json字符串非常简单,直接用内置的json模块就可以,不需要安装额外的模 ...
- python解析json文件写入数据库_Python3实现将本地JSON大数据文件写入MySQL数据库的方法...
本文实例讲述了Python3实现将本地JSON大数据文件写入MySQL数据库的方法.分享给大家供大家参考,具体如下: 最近导师给了一个yelp上的评论数据,数据量达到3.55个G,如果进行分析时直接使 ...
- spark- PySparkSQL之PySpark解析Json集合数据
PySparkSQL之PySpark解析Json集合数据 数据样本 12341234123412342|asefr-3423|[{"name":"spark", ...
- js读取解析JSON类型数据【申明:来源于网络】
js读取解析JSON类型数据[申明:来源于网络] 地址:http://blog.csdn.net/sunhuaqiang1/article/details/47026841 转载于:https://w ...
- php使用 js格式解析,JavaScript解析JSON格式数据的方法示例
本文实例讲述了JavaScript解析JSON格式数据的方法.分享给大家供大家参考,具体如下: 1.使用JavaScript提供的eval()函数function JsonText1() { var ...
- 对JavaScript解析JSON格式数据的理解
对JavaScript解析JSON格式数据的理解 一.JSON与JavaScript对象的关系 1,JSON的由来: 在21世纪初,Douglas Crockford(Web开发领域最知名的技术权威之 ...
最新文章
- 数据库备份与还原处理
- AI不会很快取代作家——但未来可能比你想象的更近
- bzoj1078【SCOI2008】斜堆
- 关于SVN Server自助修改密码详细教程
- 文件存储的原理和记事本打开文件的原理
- .gitignore文件不起作用
- 【今日CV 视觉论文速览】29 Nov 2018
- 暴力技术(一)——BFS广(宽)度优先搜索
- 【Elasticsearch】es 面试题 积累
- 计算机专业考研是哪个学科,我是大二计算机专业女生 想考研 但对未来的考研专业感到很迷茫 不知道都有什么方向 并且每个专业方向的......
- java调用数据库的基本步骤_java数据库操作基本流程和技巧
- BPNN-Belief Propagation Neural Networks
- selenium(三)之webDriver与浏览器版本问题
- 使用Modular QoS CLI(MQC)基于FR的DLCI号对包进行分类
- 关键词作用和选择技巧
- 解决PHP "headers already sent"错误
- React SSR 服务器端渲染
- 08 web原理与web测试
- 计算机图形学 使用OpenGL的场景建模
- 小时,速度,筒仓团队和甘特斯