概述
JSON input(JSON 输入)此步骤使用JSONPath表达式从JSON结构、文件或传入字段中读取数据,以提取数据并输出行。JSONPath表达式可以使用点表示法或方括号表示法。
选项介绍
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窗口。选择源文件中希望包含在输出中的每个字段旁边的复选框。此步骤中选择的所有字段都添加到表中。您可以通过在搜索框中输入字段名称来搜索字段名称。
- 其他输出字段选项卡包含如下选项
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 输入。
JSON 输入
然后双击添加的步骤进行编辑。
然后点击浏览(B),选择文件/data-integration/samples/transformations/files/jsonfile.js。然后点击增加(A)。
然后点击字段选项卡,然后点击Select fields。
Select fields窗口
然后选择category、title、author。然后点击预览,查看预览数据。
预览数据