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内容过大或分割配置的缘故,导致会分割出大量的内容,最好通过两阶段法来避免过度使用内存。 |