SplitJson
概述
通过Json路径表达式将一个JSON数组内容文件分割成多个单独的流文件,每个生成的流文件由数组中的一个元素组成,并传送到'split'连线,原始的流文件则被传送到'original'连线。如果没有找到指定的json路径,或者不是解析数组格式的json内容时,则原始流文件会被传送到'failure'连线,且不会生成任何流文件。
属性说明
JsonPath表达式
设置JsonPath, 来控制Json数据的分割。
可参考学习下JsonPath表达式的使用:https://docs.oracle.com/cd/E60058_01/PDF/8.0.8.x/8.0.8.0.0/PMF_HTML/JsonPath_Expressions.htm
示例
假设我们上级流文件内容,如下:
[{"name":"张一","age":10},{"name":"张二","age":20},{"name":"张三","age":30}]
使用JsonPath表达式设置规则,这里设置JsonPath表达式值为$, 表示取每一个Json对象。
则可以看到分割结果成3个流文件,如下:
每个流文件内容,都是1个Json对象。这里取了其中1个,如下:
每个流文件都新增3个属性:
- fragment.identifier 同一批分割数据的唯一标识
- fragment.count 同批数据的数据量
- fragment.index 同批数据的编号,从1到fragment.count值
流程模板
参见附件(请右键另存保存):SplitJson示例