最近接到一个业务需求,要把一个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接口数据并且保存到数据库中的详细操作相关推荐

  1. Python爬虫获取数据保存到数据库中(超级详细,保证一看就会)

    1.简介介绍 -网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引. ...

  2. java 数据库数据写接口_Java读取接口数据并保存到数据库

    public class Test05GetData { //guo sheng shi xian zhen cun的表结构完全一样.数据全部读取完毕之后再将数据整合到同一张表中 protected  ...

  3. Java读取接口数据并保存到数据库

    public class Test05GetData {//guo sheng shi xian zhen cun的表结构完全一样.数据全部读取完毕之后再将数据整合到同一张表中protected st ...

  4. 【Python使用】Python解析JSON数据的基本方法/用MATLAB解析json格式数据

    一 JSON数据格式介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. JSON建构于两种结构:json是Javascript中的对象和数组中的对象, ...

  5. python中json模块_Python使用内置json模块解析json格式数据的方法

    本文实例讲述了Python使用内置json模块解析json格式数据的方法.分享给大家供大家参考,具体如下: Python中解析json字符串非常简单,直接用内置的json模块就可以,不需要安装额外的模 ...

  6. python解析json文件写入数据库_Python3实现将本地JSON大数据文件写入MySQL数据库的方法...

    本文实例讲述了Python3实现将本地JSON大数据文件写入MySQL数据库的方法.分享给大家供大家参考,具体如下: 最近导师给了一个yelp上的评论数据,数据量达到3.55个G,如果进行分析时直接使 ...

  7. spark- PySparkSQL之PySpark解析Json集合数据

    PySparkSQL之PySpark解析Json集合数据 数据样本 12341234123412342|asefr-3423|[{"name":"spark", ...

  8. js读取解析JSON类型数据【申明:来源于网络】

    js读取解析JSON类型数据[申明:来源于网络] 地址:http://blog.csdn.net/sunhuaqiang1/article/details/47026841 转载于:https://w ...

  9. php使用 js格式解析,JavaScript解析JSON格式数据的方法示例

    本文实例讲述了JavaScript解析JSON格式数据的方法.分享给大家供大家参考,具体如下: 1.使用JavaScript提供的eval()函数function JsonText1() { var ...

  10. 对JavaScript解析JSON格式数据的理解

    对JavaScript解析JSON格式数据的理解 一.JSON与JavaScript对象的关系 1,JSON的由来: 在21世纪初,Douglas Crockford(Web开发领域最知名的技术权威之 ...

最新文章

  1. 数据库备份与还原处理
  2. AI不会很快取代作家——但未来可能比你想象的更近
  3. bzoj1078【SCOI2008】斜堆
  4. 关于SVN Server自助修改密码详细教程
  5. 文件存储的原理和记事本打开文件的原理
  6. .gitignore文件不起作用
  7. 【今日CV 视觉论文速览】29 Nov 2018
  8. 暴力技术(一)——BFS广(宽)度优先搜索
  9. 【Elasticsearch】es 面试题 积累
  10. 计算机专业考研是哪个学科,我是大二计算机专业女生 想考研 但对未来的考研专业感到很迷茫 不知道都有什么方向 并且每个专业方向的......
  11. java调用数据库的基本步骤_java数据库操作基本流程和技巧
  12. BPNN-Belief Propagation Neural Networks
  13. selenium(三)之webDriver与浏览器版本问题
  14. 使用Modular QoS CLI(MQC)基于FR的DLCI号对包进行分类
  15. 关键词作用和选择技巧
  16. 解决PHP "headers already sent"错误
  17. React SSR 服务器端渲染
  18. 08 web原理与web测试
  19. 计算机图形学 使用OpenGL的场景建模
  20. 小时,速度,筒仓团队和甘特斯

热门文章

  1. 【个人作品】记之-串口日志记录工具
  2. usb redirector linux,USB Redirector Client详细使用教程
  3. 点分十进制ip地址转为十进制数字地址-python3实现
  4. 软件设计原则之单一职责原则
  5. Builder模式的简单示例
  6. C# 专业的软件安装包
  7. C语言小项目——动手打造属于自己的C语言IDE
  8. cad 2005 计算机,AutoCAD2005
  9. tensorflow系列之_pspnet网络
  10. 适应浏览器自带断点下载