前言

关于kettle的JSON字符串的解析已经困扰我们很长时间了,我们知道kettle中有JSON输入控件,但这个控件用的JSONPATH语法折腾了几次都没闹明白,之前我们一直都是采取写插件使用fastjson进行解析的,最近我考虑了一个新的解析思路,就是通过JavaScript控件编写JavaScript代码进行解析,需要会一点JavaScript语法,但这样就非常灵活了,也不用写插件那么麻烦,可以肯定的是这种方式一定比JSON输入控件更灵活,缺点就是要会点JavaScript。

样例转换

自定义常量数据

这个用户定义json字符串,实际业务中采用实际的数据来源即可。

运行效果如下:

JavaScript代码

JavaScript代码如下:

//JSON字符串解析示例

//json来源

eval('var js='+LD);

//需要输出的字段

var NAME = "";

var AGE = "";

//writeToLog("e", jd.data);

//个性化处理,js就是一个JavaScript对象。

for(var i=0;i

//var outputRow = Packages.org.pentaho.di.core.row.RowDataUtil.resizeArray( row, _step_.getOutputRowMeta().size());

var outputRow = new Array(_step_.getOutputRowMeta().size());

var data = js.data[i];

//writeToLog("e", data.toString());

outputRow[_step_.getOutputRowMeta().indexOfValue("LD")] = LD;

outputRow[_step_.getOutputRowMeta().indexOfValue("AGE")] = data.age;

outputRow[_step_.getOutputRowMeta().indexOfValue("NAME")] = data.name;

_step_.putRow(_step_.getOutputRowMeta(), outputRow);

}

var trans_Status = SKIP_TRANSFORMATION;

需要注意的是我们需要输出的字段需要在控件下方的字段中添加字段定义。

运行效果如下:

文本文件输出

这个就是一个结果输出,实际业务中根据实际需要换成其他输出目标对象。

kettle读取json文件并读取数据_kettle中JSON数据解析相关推荐

  1. JS 变量保存为本地json文件,读取本地json文件为变量

    一.变量保存为本地json文件: 第一步:把返回的数据转成json格式 var content = json.stringify(data); 第二步:把转成blob这种格式             ...

  2. Qt5笔记之Qt5插件的生成与加载及json文件的读取

    一.前言 1. Qt Plugin按照应用场景分两种类型: (1)The High-Level API:用于扩展Qt本身的功能,需放在Qt安装目录下的指定目录里: (2)The Lower-Level ...

  3. python怎么读文件里的某一行-python读取txt文件并取其某一列数据的示例

    菜鸟笔记 首先读取的txt文件如下: AAAAF110 0003E818 0003E1FC 0003E770 0003FFFC 90 AAAAF110 0003E824 0003E208 0003E7 ...

  4. python读取指定路径txt文件-python读取txt文件并取其某一列数据的示例

    菜鸟笔记 首先读取的txt文件如下: AAAAF110 0003E818 0003E1FC 0003E770 0003FFFC 90 AAAAF110 0003E824 0003E208 0003E7 ...

  5. 【超图+CESIUM】【基础API使用示例】42、超图|CESIUM - 绘制编辑线段|读取kml文件绘制编辑|导出kml线段数据

    前言 缺少前置学习使用资料,请自行查阅:[https://blog.csdn.net/weixin_44402694/article/details/123110136](https://blog.c ...

  6. 【超图+CESIUM】【基础API使用示例】43、超图|CESIUM - 绘制编辑面|读取kml文件绘制编辑|导出kml面数据

    前言 缺少前置学习使用资料,请自行查阅:[https://blog.csdn.net/weixin_44402694/article/details/123110136](https://blog.c ...

  7. 项目中:Json文件的读取

    项目中:Json文件的读取 读Json文件 取Json文件中内容 举例: 举例:Json文件内容如下(Flickr8k) {'images':[{'sentids': [39300, 39301, 3 ...

  8. JSON文件的应用——记录类型的用户数据存储

    章节索引 前提 从问题出发 JSON和XML 专精JSON JSON文件读与写 (1)读JSON文件 (2)正向映射 (3)反向映射 (4)写JSON文件 后记 前提 之前一直有个问题没有弄清楚,就是 ...

  9. 如何用matlab读取hdf文件,matlab读取hdf文件

    HDF, BMP, JPEG, GIF, PCX, XWD, CUR, ICO, RAS, PBM, PGM, PPM AU, SND - NeXT/Sun sound 音訊 WAV - Micros ...

最新文章

  1. java web压缩过滤器_Java Web过滤器Filter(五)
  2. mysql 联合索 B 树_MySQL 索引与 B+ 树
  3. 今年美国数据中心投资规模超182亿美元 超前三年总和
  4. Oracle入门(十三A1)之替换变量,变量名,变量名
  5. Kali Linux 2019.1 发布,Metasploit 更新到 5.0 版本
  6. Linux基础学习八:mysql主从复制原理以及详细搭建步骤
  7. python 列表(list)去掉末尾的0或其他某个字符
  8. 编程实现 无符号加法溢出判断
  9. 成功解决Could not fetch URL https://pypi.tuna.tsinghua.edu.cn/simple/xx/: There was a problem confirming
  10. Unknown initial character set index ‘255‘ received from server.
  11. 电脑键盘部分按键失灵_华硕笔记本键盘有部分按键失灵 - 卡饭网
  12. windows 系统电脑内外网出问题,解决方案
  13. Everthing最强文件搜索神器
  14. macbook 鼠标光标乱跳解决
  15. C++ 使用replace()方法替换字符串中的反斜杠:左斜杠(\)和右斜杠(/)
  16. js正则表达式之match函数
  17. 通信工程是计算机类还是电子信息类公考,通信工程属于电子信息类吗
  18. 金陵五题·并序 刘禹锡
  19. 一个XSS靶场练习记录
  20. matlab 画折线图,matlab 双坐标折线图画法

热门文章

  1. 【IOS学习之工具学习】起始篇:mac 电脑( OX S操作系统)的简介
  2. 谷歌 Pixel 7真机图曝光 将在今年秋季上市
  3. 小程序制作海报,保存本地
  4. 中国移动的“一命二运三风水”
  5. 利用sox 做通道转换
  6. Ubuntu18上Github下载慢的问题解决方法记录
  7. MiniGPT-4中文翻译
  8. 数据库建立索引为什么会加快查询速度
  9. android自学知乎!百度、阿里、滴滴、新浪的面试心经总结,大厂面试题汇总
  10. 【管理系列-01】你真的会做项目经理吗