JsonPathReader¶
描述¶
解析 JSON 记录,并针对每个 JSON 对象评估用户定义的 JSON 路径。虽然读取器期望每条记录都是格式良好的 JSON,但 FlowFile 的内容可能由许多记录组成,每条记录可以是格式良好的 JSON 数组或 JSON 对象,记录之间允许有空格,例如常见的“每行一个 JSON”格式。如果遇到数组,则该数组中的每个元素将被视为单独的记录。用户定义的属性定义了应从 JSON 中提取的字段,以构建 Record 的字段。任何未通过 JSONPath 提取的 JSON 字段都不会在 JSON 记录中返回。
属性¶
下表列出了各项属性,其中带星号 (*) 的为必需属性。其他属性视为可选属性。该表还指出了所有默认值以及属性是否支持 NiFi 表达式语言。
显示名称 |
API 名称 |
默认值 |
允许值 |
描述 |
---|---|---|---|---|
允许评论 * |
允许评论 |
false |
|
解析 JSON 文档时是否允许评论 |
日期格式 |
日期格式 |
指定读取/写入“Date”字段时使用的格式。如果未指定,则将假定“Date”字段为自纪元(1970 年 1 月 1 日午夜 GMT)以来的毫秒数。如果指定,则该值必须与 Java java.time.format.DateTimeFormatter 格式相匹配(例如,MM/dd/yyyy 表示两位数的月份,然后是两位数的日期、四位数的年份,全部由“/”字符分隔,如 01/01/2017)。 |
||
最大字符串长度 * |
最大字符串长度 |
20 MB |
解析 JSON 文档时字符串值的最大允许长度 |
|
时间格式 |
时间格式 |
指定读取/写入“Time”字段时使用的格式。如果未指定,则将假定“Time”字段为自纪元(1970 年 1 月 1 日午夜 GMT)以来的毫秒数。如果指定,则该值必须与 Java java.time.format.DateTimeFormatter 格式相匹配(例如,HH:mm:ss 表示 24 小时格式的两位小时数、两位分钟数和两位秒数,全部由“:”字符分隔,如 18:04:15)。 |
||
时间戳格式 |
时间戳格式 |
指定读取/写入“Timestamp”字段时使用的格式。如果未指定,则将假定“Timestamp”字段为自纪元(1970 年 1 月 1 日午夜 GMT)以来的毫秒数。如果指定,则该值必须与 Java java.time.format.DateTimeFormatter 格式相匹配(例如,MM/dd/yyyy HH:mm:ss 表示两位数的月份,然后是两位数的日期、四位数的年份,全部由“/”字符分隔;然后依次是 24 小时格式的两位小时数、两位分钟数和两位秒数,全部由“:”字符分隔,如 01/01/2017 18:04:15)。 |
||
架构访问策略 * |
schema-access-strategy |
infer-schema |
|
指定如何获取用于解读数据的架构。 |
架构分支 |
schema-branch |
指定在“架构注册表”属性中查找架构时使用的分支名称。如果所选架构注册表不支持分支,则该值将被忽略。 |
||
架构名称 |
schema-name |
${schema.name} |
指定要在架构注册表属性中查找的架构的名称。 |
|
架构参考读取器 * |
schema-reference-reader |
服务实现,负责读取 FlowFile 属性或内容以确定架构参考标识符 |
||
架构注册表 |
schema-registry |
指定用于架构注册表的控制器服务 |
||
架构文本 |
schema-text |
${avro.schema} |
Avro 格式架构的文本 |
|
架构版本 |
schema-version |
指定要在架构注册表中查找的架构版本。如果未指定,则将检索架构的最新版本。 |
状态管理¶
此组件不存储状态。
受限¶
此组件不受限制。
系统资源注意事项¶
此组件未指定系统资源注意事项。