JoltTransformJSON

文档中心 › 组件索引 › JoltTransformJSON

JoltTransformJSON Processor

类型全限定名:cn.org.acal.lynxus.processors.jolt.JoltTransformJSON

所属 Bundle:cn.org.acal.lynxus:lynxus-jolt-nar:2.11.8

描述

使用 Jolt 转换的领域特定语言操作指令将 JSON 重新格式化为 JSON。 JOLT 社区版文档提供了受支持操作和语法标准的示例。

标签

jsonjolttransformchainrshiftdefaultremovecardinalitysort

属性

下表中,加粗的属性为必填项;其余为可选项。表格同时标注默认值、是否支持表达式语言,以及是否为敏感属性(值会被加密)。

名称默认值可选值描述
Jolt Transformjolt-transform-chain
  • Shift — 移位(Shift)输入 JSON/数据以创建输出 JSON。
  • Chain — 执行 Jolt 转换列表。
  • Default — 对输出 JSON 应用默认值。
  • Remove — 从输入数据中移除值以创建输出 JSON。
  • Cardinality — 更改输入元素的基数(cardinality)以创建输出 JSON。
  • Sort — 按字母顺序对输入 json 键值排序。忽略任何已设置的规范。
  • Custom — 自定义转换。需要自定义转换类名(Custom Transformation Class Name)
  • Modify - Default — 当键缺失或值为 null 时写入
  • Modify - Overwrite — 始终覆盖值
  • Modify - Define — 当键缺失时写入
指定应与所提供的规范一起使用的摇动变换。
Jolt Specification用于 JSON 数据转换的 Jolt 规范。此属性的值可以是 Jolt 规范的文本或包含 Jolt 规范的文件路径。必须设置 'Jolt 规范',否则如果选择了 Jolt Sort 转换,则忽略该值。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Custom Transformation Class Name用于自定义转换的完全限定类名称
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Custom Module Directory以逗号分隔的文件和/或目录路径列表,其中包含包含自定义转换的模块(不包含在 Lynxus 的类路径中)。
支持表达式语言:是(仅使用环境/系统变量求值)
Transform Cache Size1编译 Jolt 转换可能相当昂贵。理想情况下,这应该只执行一次。但是,如果转换中使用了 Expression Language,我们可能需要为每个 FlowFile 使用新的转换。此值控制我们在内存中缓存多少个这样的转换,以避免每次都必须编译转换。
JSON SourceFLOW_FILE
  • FLOW_FILE — 应用于包含 JSON 的 FlowFile 内容的转换
  • ATTRIBUTE — 应用于包含 JSON 的 FlowFile 属性的转换
  • JSON_LINES — 应用于包含 JSON Lines 或 NDJSON 的 FlowFile 内容的转换
指定 Jolt 转换是应用于 FlowFile JSON 内容还是指定的 FlowFile JSON 属性。
JSON Source Attribute包含要转换的 JSON 的 FlowFile 属性。
Pretty Printfalse
  • true
  • false
将漂亮的打印格式应用于 Jolt 变换的输出
Max String Length20 MB解析JSON文档时字符串值允许的最大长度
Retain Unicode Escape Sequencesfalse
  • true
  • false
允许保留 Unicode 转义序列而不是解析它们(例如保留文本 \u00E9 而不解析为 é)

关系 (Relationships)

名称描述自动终止
failure如果 JSON 转换失败(例如,由于内容或属性中的 JSON 无效),原始 FlowFile 将路由到此关系。否
success成功转换内容或更新属性的 FlowFile 将被路由到此关系否

写入的 FlowFile 属性

名称描述
mime.type根据配置设置为 application/json 或 application/jsonl

状态管理

该组件不存储状态。

受限 (Restricted)

该组件不受限。

输入要求

该组件要求有传入连接。

详细说明

JoltTransformJSON

使用信息

Jolt 处理 JSON 的工具不是基于流的,因此大型 JSON 文档的转换可能 消耗大量内存。目前支持 UTF-8 编码的 FlowFile 内容和 Jolt 规范。 规范可以用表达式语言定义,在规范语法中,Attribute 可以出现在 等号的左边或右边。支持自定义的 Jolt Transformation(实现 Transform 接口)。可以通过 custom module directory 属性引入包含 当前 classpath 中不存在的自定义库的模块。注意: 配置该 Processor 时,如果用户选择了 Default 转换但又提供了 Chain 规范,系统不会提示规范无效,会产生失败的 FlowFile。这是 Jolt 库中已识别的已知问题。