JSON抽取组件用于从JSON输入源中抽取数据。
双击画布中的JSON抽取组件,弹出JSON抽取窗口。
输入步骤名称,名称要求为非空,2到50个字符。
分别配置文件、内容、字段、其他输出字段四个页签下的相关参数项。
单击<确定>按钮完成配置。
预览:在选中文件,且在“字段”页签成功获取字段或者手动输入字段后,则可以操作<预览>按钮;单击该按钮,可以根据设置的预览行数预览数据。
显示文件名:在利用正则表达式获取文件名时,单击<显示文件名>按钮显示满足正则表达式的文件名,并可以选择读取文件。文件名展示页面支持文件的名称过滤和正则过滤。
文件页签下的“从前面的步骤获取源”,这里的源可以是一个JSON字符串、一个JSON文件、或者一个URL。
本地文件或目录:定义文件名字或整个目录或目录下的文件,可定义服务端本地文件或目录、FTP文件或目录,选择要抽取的文件类型,根据输入框中的示例格式填写文件或目录。如果是服务端本地文件,路径需要设置为/usr/local/dig/data,相应的文件需要拷贝到/data/software/base/glusterfs/oasis-data-pvc/oip/oip-platform-dig-data-pvc/data路径中,或者将文件上传至di-web容器或di-executor容器中。文件上传至容器中的操作可参见数据集成常见问题解答中的“数据集成服务端本地文件上传及下载”。
增加:可以在输入“文件或目录”、“规则表达式”、“正则表达式(排除)”后,单击<增加>按钮,把填写内容添加到选中的文件表格中;也可以直接单击<增加>按钮,在选中的文件表格中增加一行,直接在表格中填写。
正则表达式:用正则表达式来适配定义的文件目录中的文件,例如,可以读取有json后缀的文件(例如文件/目录写“D:\”、通配符写“.*.json”)。
正则表达式(排除):用正则表达式排除规则表达式中的一部分不需要的文件。
操作:用于删除此行数据。
必须存在:定义当前文件是否必须存在,如果选择“是”,则必须存在该文件;如果选择“否”,表示该文件不是必要的。
包含子目录:如果选中的是一个目录,则该参数生效,定义是否包含子目录中满足正则表达式的文件。
从前面步骤获取源:从前面的步骤选择一个字段值作为输入源。如果勾选此选项,则必须存在上一个步骤。
前一步骤名:要获取输入源的上一个步骤名称。
保存源的字段:选择输入流中作为输入源的字段。若“源是一个文件名”、“源是一个URL”均未勾选,表示从前序步骤读取的是JSON格式数据。
源是一个文件名:保存源的字段值是一个JSON文件名,这里的文件名指的是包含文件名称的全路径,可以是本地文件,也可以是FTP文件。
源是一个URL:保存源的字段值是一个URL,这里的URL一般是接收GET请求、返回值为JSON类型的接口。
从结果中移除源字段:当我们使用的是从前面步骤获取源时,默认会将输入源字段作为抽取结果的第一个字段。通过该选项,可以从结果中删除输入源字段的信息
忽略空文件:选中该选项时,如果JSON文件没有内容,抽取时会忽略该文件,而不会报错。
如果没有文件不进行报错:选中该选项时,如果没有选择要抽取的文件或者选中的文件不存在,则提取结果为空,而不会报错。
忽略不完整的路径:选中该选项时,如果字段路径丢失,抽取时会忽略该字段,不会报错。
字段值缺失时不进行报错:选中该选项,如果在获取数据时发生了字段值缺失,自动填充为null,而不会报错。
比如:下面是JSON输入中的一部分内容
[ {
"foo" : "foo1",
"bar" : "bar1"
}, {
"foo" : "foo2"
} ]
显然这个JSON数组的第二个JSON串缺失了bar字段,假如我们需要抽取的是foo、bar两个字段的内容。
如果没有选中“字段值缺失时不进行报错”,会直接报错;反之,返回如下结果:
foo bar
foo1 bar1
foo2 <null>
记录数量限制:按照JSON字段配置解析出的数据条数上限进行设置。默认为0,表示解析所有数据。
在输出中包含文件名:在抽取结果中添加一个字段,值为抽取文件的全路径。选中该选项时,要求输入该字段的名称。
在输出中包含行数:在抽取结果中添加一个字段,值为抽取结果的行号。选中该选项时,要求输入该字段的名称。
获取字段:从JSON文件中获取字段。
操作:用于删除此行数据。
名称:字段名称。
路径:JsonPath表达式。
类型:包括字符串、数值、日期、布尔、整型、二进制、时间戳、高精度类、网址。
格式:对指定类型(如日期、时间、精度数值)进行格式化转化。
长度:输出字段内容的长度。
Number类型:有效数的数量。
String类型:字符串的长度。
精度:输出字段内容的精度。
Number类型:浮点数的数量。
String、Date、Boolean类型:未使用。
小数:小数点,可以是一个“.”或者“,”。
分组:指定分组符号,分组可以是“.”或“,”。
去除空字符串方式:对于内容两端的空格的处理方式。
重复:是否保留重复的内容,如果选择是,则自动将空白内容填充为上一行的内容,可用于对合并单元格的抽取。
文件名字段:如果不为空,则在抽取结果中添加一个字段,字段值为文件名。
扩展名字段:如果不为空,则在抽取结果中添加一个字段,字段值为文件的扩展名。
路径字段:如果不为空,则在抽取结果中添加一个字段,字段值为文件的路径。
假设输入文件的全路径为:D:\abc\test.json 或 /opt/test.json
则该文件的路径为:D:\abc 或 /opt
文件大小字段:如果不为空,则在抽取结果中添加一个字段,字段值为文件的大小。
是否为隐藏文件字段:如果不为空,则在抽取结果中添加一个字段,值为Y或N,分别表示该文件是或不是隐藏文件。
最后修改时间字段:如果不为空,则在抽取结果中添加一个字段,字段值为该文件的最后修改时间,格式为 yyyy/MM/dd HH:mm:ss.SSS。
URI字段:如果不为空,则在抽取结果中添加一个字段,字段值为该文件的URI。
假设输入文件的全路径为:D:\abc\test.json 或 /opt/test.json
则该文件的URI:file:///D:/abc/test.json 或 file:///opt/test.json
Root URI字段:如果不为空,则在抽取结果中添加一个字段,字段值为该文件的Root URI。
假设输入文件的全路径为:D:\abc\test.json 或 /opt/test.json