Skip to main content

SplitJson

描述:

通过Json路径表达式将一个JSON数组内容文件分割成多个单独的流文件,每个生成的流文件由数组中的一个元素组成,并传送到'split'连线,原始的流文件则被传送到'original'连线。如果没有找到指定的json路径,或者不是解析数组格式的json内容时,则原始流文件会被传送到'failure'连线,且不会生成任何流文件。

标签:

json, split, jsonpath, 分隔

参数:

如下列表中,必填参数则标识为加粗. 其他未加粗参数,则表示为可选参数。表中同时提到参数默认值设置.

名字默认值允许值列表描述
JsonPath表达式指定JsonPath表达式,指明如何将数组元素分割成JSON/scalar片段。
空值表示空字符串
- 空字符串
- 'null'字符串
指定当JSON路径表达式的解析结果为空值时,空值的表示形式。

连线:

名字描述
failure如果流文件由于任何原因处理失败(例如,流文件不是有效的JSON内容或指定的路径不存在),则流文件将被路由到此连线。
original被分割成许多段的原始流文件会被路由到此连线。如果流文件处理失败,则不会向此连线发送任何内容。
split所有原始流文件被分割的片段都会被路由到此连线。

读取属性:

未提供。

写入属性:

名字描述
fragment.identifier从同一个父流文件生成的所有分割流文件,都会有相同的随机生成UUID添加到该属性中。
fragment.index一个索引数字,表示从单个父流文件创建的各个分割流文件的顺序。
fragment.count从父流文件生成的所有子分割流文件的总数。
segment.original.filename父流文件的文件名称。

状态管理:

该组件不保存状态。

限制:

该组件没有限制

输入流要求:

组件必须提供输入流。

系统资源考量:

资源描述
MEMORY不仅分割JSON生成的所有子流文件,流文件本身的所有内容(作为JsonNode对象)都会被读入到内存中。如果由于JSON内容过大或分割配置的缘故,导致会分割出大量的内容,最好通过两阶段法来避免过度使用内存。