Kettle 除了常规的数据处理之外,还可以模拟发送HTTP client/post  ,REST client。

这几天我用HTTP GET 请求访问了百度 提供的接口(百度地图开放平台),并通过kettle、java两种方式进行了解析。

kettle使用组件是 json input ;java使用的 阿里巴巴Json工具 : Fastjson ;

对于新手来说kettle 的HTTP GET 组件执行速度确实优于自己书写的程序,最主要的是太方便了。

单对于json解析来说, kettle、java 解析规则相似。

kettle 在读取已知结构的 JSON  时可以自动给出解析方案,非常方便。像获取 API 然后进行解析,需要自己书写解析规则。

对于结构总体相似,但又细微差别的 JSON 解析,kettle不支持。因此 java 的灵活多变和容错处理则显得颇为可爱。

本文章只写kettle 当中的 HTTP client/ json input 两个组件 。

HTTP client 组件

1、该组件在kettle当中的位置:

2、参数设置

HTTP client 通过url调用接口,有两种方式。第一种我们直接给定 url,第二种我们通过步骤从前一步当中传 url 过来。

调用之后返回的数据一般会以json的形式存在一个字段当中。我们可以通过设定“结果字段名”对获取后的 json 进行命名,方便下面操作。

在调用HTTP client 时我们也可以添加请求头(普通url不添加也是可以访问的)。

kettle 解析json

kettle 解析json主要通过 输入内的组件 json input 。

使用该组件时,必须保证解析的json的格式完全符合自己编写的解析规则

读取本地文件解析无需勾选 源定义在一个字段里 。

勾选之后可以从上个步骤当中获取包含json的字段 ,对其解析。该字段一般会是 http client  的 结果输出字段名 。

json 结构未知的我们需要自己书写解析规则。

以下面的json 为例 ,我们需要获取 results 中的name 、lat、children等信息对应的json解析规则如下

{"status":0,"message":"ok","total":134,"results":[{"name":"北京市dnf小学","location":{"lat":39.923629,"lng":116.388059},"address":"府右街丙27号","province":"北京市","city":"北京市","area":"西城区","street_id":"8ca69c393be618bfc061e","telephone":"","detail":1,"uid":"8ca69c70e393befc061e","detail_info":{"tag":"教育培训;小学","navi_location":{"lng":116.3887231398,"lat":39.92324024956},"type":"education","detail_url":"","overall_rating":"0.0","children":[]}},{"name":"dudu小学(遂安伯校区)","location":{"lat":39.922193,"lng":116.430818},"address":"金宝街65号","province":"北京市","city":"北京市","area":"东城区","street_id":"9bdab243406c476051","detail":1,"uid":"9bda75243406c476051","detail_info":{"tag":"教育培训;小学","navi_location":{"lng":116.431089492,"lat":39.9215554065},"type":"education","detail_url":"","children":[]}}
]
}

利用kettle HTTP Client 获取百度API区域位置内相关信息,并解析json相关推荐

  1. ajax 获取用户ip地址,利用jQuery实现Ajax获取当前IP地区位置代码

    特效描述:利用jQuery实现 Ajax 获取当前IP 地区位置代码.利用jQuery实现Ajax获取当前IP和地区位置代码 代码结构 1. 引入JS 2. HTML代码 AJAX检测ip和地区 $( ...

  2. 基于ESO的永磁同步电机无感FOC 采用线性扩张状态观测器(LESO)估计电机反电势,利用锁相环从反电势中提取位置和转速信息

    基于ESO的永磁同步电机无感FOC 1.采用线性扩张状态观测器(LESO)估计电机反电势,利用锁相环从反电势中提取位置和转速信息,从而实现无位置传感器控制: 2.提供算法对应的参考文献和仿真模型. 购 ...

  3. JS - 获取当前页面的 url地址 及 相关信息

    JS - 获取当前页面的 url地址 及 相关信息 一. 获取当前页面的 url地址 二. 获取当前网址url 后的指定参数 一. 获取当前页面的 url地址 window.location 以htt ...

  4. python经纬度 县信息_10分钟教你用Python获取百度地图各点的经纬度信息

    前言 Python确实是个好东西,可以用来解决很多数据上的烦恼.结合现在各个平台提供的API,可以用Python做很多有用的需求哦~ 需求分析 之前写论文的时候,就有这个需求了.就是抓取百度地图上某些 ...

  5. 10分钟教你用Python获取百度地图各点的经纬度信息

    前言 Python确实是个好东西,可以用来解决很多数据上的烦恼.结合现在各个平台提供的API,可以用Python做很多有用的需求哦~ 需求分析 之前写论文的时候,就有这个需求了.就是抓取百度地图上某些 ...

  6. 获取硬盘和卷或分区相关信息(容量,ID,卷标名字等)

    1.枚举所有硬盘 这里主要借助了setup API,这些API主要是NT4.0之后提供的一些用于操作设备的API. 枚举所有硬盘借助了SetupDiGetClassDevs与SetupDiEnumDe ...

  7. Android系统信息获取 之十:移动网络相关信息获取

    Android平台移动网络信息主要是通过TelephonyManager类来获取的,通过前面对TelephonyManager的观察Android系统信息获取 之九:TelephonyManager类 ...

  8. React获取router路由路径里的相关信息

    路由:'financial-budget/:id/edit' 路径:http://localhost:3000/financial-budget/4028963b7ce8b541017ce90bed9 ...

  9. Android之如何获取手机程序列表以及程序相关信息并启动指定程序

    效果图: 程序列表: 启动程序,获取程序信息: 代码如下: 创建一个AppInfo类来表示应用程序 <pre name="code" class="java&quo ...

最新文章

  1. UI整理-----part2--UI控件
  2. Jenkins 2.9.1 安装文档
  3. 碎片化时间里的高质量阅读,这几个公众号请收好~
  4. PathMatchingResourcePatternResolver通过适配符寻找符合条件的java类
  5. 华为交换机SSH登录失败原因
  6. Java调用jar包测试
  7. Jupyter notebook入门教程(下)
  8. TensorFlow实战-AlexNet
  9. ListView用法总结
  10. 使用python将excel数据导入数据库
  11. fastapi 用户指南(路径参数、查询参数、请求体)
  12. LeetCode 708. 循环有序列表的插入
  13. 懵逼的字节跳动一面、二面凉经~
  14. 一加9 Pro高清渲染图曝光:后置四摄加持哈苏logo真香
  15. 直播卖货到底是不是卖人设?
  16. MATLAB自适应平滑滤波
  17. 让VS Code总是打开新tab
  18. 无线wifi服务器,无线串口服务器,wifi转串口,网口转wifi,无线串口通讯模块-上海卓岚...
  19. 出大事了,涛哥你们Java应用GC后不释放内存
  20. AprilTags图像识别定位实例

热门文章

  1. 【历史上的今天】10 月 6 日:互联网先驱诞生日;莲花公司宣布上市
  2. 广电电视信号如何生成RTMP流进入流媒体系统网络分发实现手机APP播放
  3. 计算机结构体系:循环展开题型 (非凭感觉的方法详解)
  4. Stegano之binwalk、C32Asm
  5. Linux下进行格式化移动硬盘(U盘)以及分区
  6. 1.7.10我的世界java下载_我的世界1.7.10
  7. html5 驾考 答题样式,考驾照答题软件
  8. 【小程序源码】圣诞节头像框制作生成支持多模板
  9. pycharm使用了ctrl+鼠标回到原来的地方方法
  10. Hadoop完全分布式搭建(在三台虚拟机中实现)