概述

JSON input(JSON 输入)此步骤使用JSONPath表达式从JSON结构、文件或传入字段中读取数据,以提取数据并输出行。JSONPath表达式可以使用点表示法或方括号表示法。

选项介绍




kettle java代码解析json kettle json输入_kettle java代码解析json

JSON 输入



JSON input(JSON 输入)步骤有以下选项:

Step name(步骤名称):在画布上指定JSON input(JSON 输入)步骤的唯一名称。您可以自定义名称或将其保留为默认名称。

  • 文件选项卡包含如下选项

Source is from a previous step(源定义在一个字段里):选择从前面定义的字段检索源。选择后,设置一下字段可用:Select field(从字段获取源)、Use field as file names(源是一个文件名?)、Read source as URL(以Url获取源?)、Do not pass field downstream。当这个选项禁用,以下字段是可用:File or directory(文件或路径)、Regular Expression(正则表达式)、Exclude Regular Expression(正则表达式(排除))、Selected files(选中的文件)。

Select field(从字段获取源):在前面的步骤中指定要用作源的字段名。

Use field as file names(源是一个文件名?):选中表示源是文件名。

Read source as URL(以Url获取源?):选中表示是否应该以URL的形式访问源。

Do not pass field downstream:选择将源字段从输出流中移除。此操作提高了大型JSON字段的性能和内存利用率。

File or directory(文件或路径):如果源未在字段中定义,请指定源位置。单击浏览(B)导航到源文件或目录。单击增加(A)以在选中的文件列表中包含源。

Regular Expression(正则表达式):指定一个正则表达式来匹配指定目录中的文件名。

Exclude Regular Expression(正则表达式(排除)):指定一个正则表达式以排除指定目录中的文件名。

  • 选中的文件列表包含如下选项

选中的文件表显示用作输入源位置的文件或目录。指定文件或路径后,单击增加(A)填充此表。当您单击增加(A)以将其包含到表中时,JSON输入步骤尝试连接到指定的文件或目录。

File/Directory(文件/路径):在文件或目录中指定源文件后单击增加(A)所指示的源位置。

Wildcard (RegExp)(通配符):正则表达式中指定的通配符。

Exclude wildcard(通配符(排除)):排除在排除正则表达式中指定的通配符。

Required(要求):输入所需的源位置。

Include subfolders(包含子目录):源位置中是否包含子文件夹。

单击删除(D)从表中删除源。单击编辑(E)从表中删除一个源,并将其返回到文件或目录选项。使用显示文件名(S)..来显示成功连接到JSON输入步骤的源的文件名。

  • 内容选项卡包含如下选项

Ignore empty file(忽略空文件):选择跳过空文件。清除后,空文件将导致进程失败并停止。

Do not raise an error if no files(如果没有文件不进行报错):当没有文件可供处理时,选择继续。

Ignore missing path(忽略不完整的路径):当出现错误(1)没有字段匹配JSON路径或(2)所有值都为null时,选择继续处理文件。清除后,发生错误时不再处理其他行。

Default path leaf to null:如果选中,为缺少的路径返回一个null值。

Limit(限制):指定从该步骤生成的记录数量的限制。当设置为0时,结果不受限制。

Include filename in output(在输出中包含文件名):如果选中,则在结果中添加具有文件名的字符串字段。

Rownum in output(在输出中包含行数?):选择此选项可在结果中添加带有行号的整数字段。

Add filenames to result(添加文件名):选择将已处理文件添加到结果文件列表。

  • 字段选项卡包含如下选项

Name(名称):映射到JSON输入流中相应字段的字段的名称。

Path(路径):JSON输入流中字段名的完整路径。通过在路径中添加星号*,可以检索所有记录。例如$.mydata.*。

Type(类型):输入字段的数据类型。

Format(格式):用于转换原始字段格式的可选掩码。有关此步骤中可以使用的通用有效日期和数字格式的信息,请参阅通用格式(https://help.pentaho.com/Documentation/9.1/Products/Common_Formats)。

Length(长度):字段的长度。

Precision(精度):用于数字类型字段的浮点数。

Currency(货币):货币符号(例如$或€)。

Decimal(十进制):小数点可以是.(例如,5,000.00)或(例如,5.000,00)。

Group(组):分组可以是,(例如,10,000.00)或。(例如5.000,00)。

Trim type(去除空字符串的方式):应用于字符串的修剪方法。

Repeat(重复):如果行为空,则重复最后一行的对应值。

单击Select fields,让步骤用从源文件派生的字段填充表。此步骤标识的所有字段都将添加到表中。

Select fields

单击字段选项卡中的Select fields以打开Select Fields窗口。选择源文件中希望包含在输出中的每个字段旁边的复选框。此步骤中选择的所有字段都添加到表中。您可以通过在搜索框中输入字段名称来搜索字段名称。




kettle java代码解析json kettle json输入_json文件预览_02


  • 其他输出字段选项卡包含如下选项

Short filename field(文件名字段):指定包含不带路径信息但带扩展名的文件名的字段。

Extension field(扩展名字段):指定包含文件名扩展名的字段。

Path field(路径字段):以操作系统格式指定包含路径的字段。

Size field(文件大小字段):指定包含数据大小的字段。

Is hidden field(是否为隐藏文件字段):指定文件是否隐藏的字段(布尔值)。

Last modification field(最后修改时间字段):指定表示文件最后一次修改日期的字段。

Uri field(Uri字段):指定包含URI的字段。

Root uri field(Root uri字段):指定只包含URI根部分的字段。

元数据注入支持

此步骤的所有字段都支持元数据注入。您可以将此步骤与ETL元数据注入一起使用,以便在运行时将元数据传递给您的转换。

示例

双击输入中的JSON 输入,添加一个JSON 输入。


kettle java代码解析json kettle json输入_json删除指定元素_03

JSON 输入


然后双击添加的步骤进行编辑。


kettle java代码解析json kettle json输入_json文件预览_04


然后点击浏览(B),选择文件/data-integration/samples/transformations/files/jsonfile.js。然后点击增加(A)。


kettle java代码解析json kettle json输入_kettle java代码解析json_05


然后点击字段选项卡,然后点击Select fields。


kettle java代码解析json kettle json输入_json文件预览_06

Select fields窗口


然后选择category、title、author。然后点击预览,查看预览数据。


kettle java代码解析json kettle json输入_json删除指定元素_07

预览数据