JsonUpdater公司
此转换器通过执行以下一个或多个操作修改JSON文档:
- 在json对象或数组中插入新值
- 替换JSON对象或数组中的现有值
- 合并两个json对象或数组的内容
- 从json对象或数组中移除值
- 向json数组追加值
- 重命名json对象中的键。
对于每个文档更新,json路径表达式用于标识要修改的json对象或数组的位置。第二个参数命名要更改的特定对象键或数组索引。请注意,路径可能引用多个项。如果是这种情况,所有项目都将被修改。
对于替换现有项或插入新项的修改,指定了两个参数,这些参数指定要添加到文档中的值。此值可以作为简单文本值给出,也可以是函数表达式、json对象或json数组。
这个更新功能提供文档更新操作中使用的属性值。这个文件特性仅用于提供要更新的json文档。
对于每个进入更新端口中列出的所有更新操作都将应用于通过文件港口。因此,如果没有特性通过更新港口。
请注意,如果文档直接输入变压器参数,则可以通过两种不同的方式进行处理:
- 如果没有文件将特征赋予转换器,将创建一个新特征来存储文档。每个更新都将应用于文档,然后通过文件港口。
- 如果文件将特性提供给transformer,每个更新都将应用于文档,这些特性将从transformer输出。
输入端口
输入特性包含要修改的json文档。文档可以包含在属性中、直接输入到转换器中或包含在由属性值引用的文件中。
对于进入此输入端口的每个功能,将对通过文件输入端口。这些功能将包含文档更新中使用的属性值。
输出端口
这个文件输入特性将通过此端口输出。这些功能将包含更新的文档,该文档将存储在Result属性参数中名为的属性中。
参数
变压器
此参数用于指定哪些更新功能将修改文档。当此参数设置为属性列表时,文件功能将仅由更新为这些属性共享相同值的功能。文档将由具有相同属性值的所有更新功能进行修改。请注意,如果没有,则不会更新文档更新为转换器提供与“分组方式”属性值相同的功能。
注意:并行处理如何与FME一起工作:请参见对并行处理详细信息。
此参数确定转换器是否应跨并行进程执行工作。如果启用,则将为集团参数。
并行处理级别
参数 | 的进程数量 |
---|---|
没有并行性 | 1个 |
最小的 | 核处理器(CPU)是计算机执行数学计算的物理部分。它是计算机系统中最重要的部分。传统处理器上只有一个核心,这意味着在任何给定时间,只执行一组计算。如果一个处理器是双核的,这意味着单片机包含两个处理器的硬件,现在称为核心,以区别于单片机,同时并行运行。(来源:http://www.ehow.com/facts_5730257_computer-core-processors_.html)/ 2 |
温和的 | 岩心确切数目 |
咄咄逼人的 | 核心x 1.5 |
极端的 | 核心x 2 |
例如,在四核机器上,最小并行度将导致两个同时的fme进程。8核机器上的极端并行性将导致16个同时进程。
您可以尝试使用此功能,并在windows任务管理器和工作台日志窗口中查看信息。
是的:此转换器将按顺序处理输入组。价值的变化集团输入流上的参数将触发当前累加组上的批处理。如果组很大/很复杂,这将提高总体速度,但如果输入组没有真正排序,则可能导致不希望的行为。
没有:这是默认行为。只有当所有输入都存在时,才会在此转换器中进行处理。
JSON文档
此参数用于指定要修改的json文档的类型。JSON格式可能来自输入特性(参数值:文本或属性),也可能来自外部文件。(参数值:json文件)
当json输入参数设置为“文本或属性”时,此参数用于指定json文本。参数可以设置为属性值,也可以直接在参数中输入JSON文档。
当json输入参数设置为“json file”时,此参数用于指定文件的位置。文件路径可以直接输入到参数中,也可以来自属性值。
更新
更新表中的每一行指定一个更新操作。
此参数指定要应用于XML文档的修改类型。可能的更新包括:
更新类型 | 描述 |
---|---|
插入对象 |
将新的键/值对插入到对象中。键名取自“对象/数组索引”列。插入的值取自value参数。 |
合并对象 |
将所有键/值对从一个对象复制到另一个对象。如果值参数不是JSON对象,或者不是计算结果为对象的XQuery表达式,则更新将失败。 |
插入数组 |
将新值插入到指定位置的数组中。数组位置(从0开始计数)取自“对象/数组索引”列,应该是整数。新值取自value列。 |
添加到数组 |
将新值附加到数组的末尾。 |
合并数组 |
将一个数组中的所有值复制到另一个数组中。如果值参数不是JSON数组,或者不是计算结果为数组的XQuery表达式,则更新将失败。 |
替换对象值 |
替换对象键的值。要替换其值的键取自“对象/数组索引”参数。 |
替换数组值 |
替换数组中指定位置的值。要替换的值的数组索引取自“对象/数组索引”列。索引应该是一个整数。数组下标在0处计数。 |
重命名对象的关键 |
更改对象键名。重命名的键取自“对象/数组索引”参数。 |
删除的对象 |
从对象中删除键/值对。要删除的键取自“对象/数组索引”参数。 |
删除数组 |
从数组中移除一个值。要删除的值的数组索引取自“对象/数组索引”列。索引应该是一个整数。数组下标在0处计数。 |
此参数用于标识要更新的json对象或数组。对于修改特定对象键或数组索引的更新,使用“object/array index”参数标识键/索引。
json路径使用简单的文本语法来跟踪从顶层对象或数组到正在修改的对象或数组的整个json文档的路由。
所有json文档都必须有一个对象或数组作为根值。在JSON路径中,此根值由“JSON”关键字标识。因此,每个json路径都以这个关键字开头。方括号语法用于标识路径的每个级别。
整数可用于标识数组中的位置:
- 如果根值是一个数组,则此路径引用数组中的第一个值。如果根值是对象,则此路径将不解析为任何值。
- 如果根值是一个数组,这个路径指向数组中的第五个值。
带引号的字符串可用于引用对象键的值:
- json["location"] -如果根值是一个对象,这个路径指的是对象中的' location '键的值。如果根值是一个数组,则此路径将不解析为任何值。
- json["features"] -指的是根对象中的' features '键的值。
可以重复这些索引,使路径深入到json文档中。了解文档的结构很重要,这样索引类型(对象或数组)就正确了。
- 这个路径指的是根数组中第一个元素的“location”对象键。
- json["features"][0]["location"]——这个路径指的是根对象的' features '数组的第一项中的' location key '的值。例如,这可以适用于以下(不完整的)文档:
{
“特征”:[
{“位置”:{…}}
]
}
通配符可用于引用数组的所有元素或对象中的所有值。*字符用于表示通配符。
- json[*]——如果根值是一个数组,则此路径引用数组中的所有值。如果根值是对象,则此路径引用对象中所有键的值。
- json[*]["location"] -这个路径指的是根对象或数组的所有子值的' location '键。
- json["features"][*] -此路径引用根对象中' features '键值中包含的所有值。
为了在json路径中使用属性值,应该使用@value fme函数。如果属性值是对象键,@value函数应该用引号括起来。
- json[@Value(index)]——这个路径指向根数组中由' index '属性指示的位置的项。
- json (“@ value(键)"] – This path refers to the object value whose key is named in the ‘key’ attribute.
注意:path参数中使用的@Value()函数将应用于更新正在处理的功能,而不是文件正在更新的功能
此参数用于指定要插入/删除/修改其值的特定对象键/数组索引。
对于对象更新,此参数的值应为字符串,该字符串将被解释为对象键。此参数中的字符串周围不需要引号。
对于数组更新,此参数的值应为整数。请注意,数组索引从0开始。
此参数用于指示如何解释value参数的值。在Value参数的描述中解释了此参数的不同值的影响。一般来说,如果转换器打算向文档中插入文本内容,则应将此参数设置为纯文本;如果转换器打算向文档中插入json对象或数组,或者如果该值是通过xquery函数调用生成的,则应将其设置为json/xquery。
此参数用于指定应插入到文档中的新值。如果值类型参数设置为纯文本,则此参数的内容将被编码以在XML文档中安全使用。亚搏在线也就是说,双引号将被转义为“\”,反斜杠将被转义为“\”,依此类推。
如果Value Type参数设置为JSON/XQuery,则此参数的内容将被解释为XQuery表达式。这允许在文档中插入json值元素。此外,这允许使用FME XQuery函数。例如,json模板(例如JSONTemplater变压器)可以作为参数值输入。然后在插入文档之前对其进行评估。
注意:新值中使用的任何fme xquery函数都将访问更新功能,而不是文件特色。
参数
此参数指定Workbench是否应尝试验证传递给“值”列中使用的任何XQuery函数的属性名。
此参数指定更新的JSON文件将被写入该属性。默认值是_result.
编辑变压器参数
使用一组菜单选项,可以通过引用工作区中的其他元素来指定变压器参数。一些转换器中还提供了更高级的功能,如高级编辑器和算术编辑器。要访问这些选项的菜单,请单击在适用参数旁边。有关详细信息,请参见变压器参数菜单选项.
变压器类别
搜索FME知识中心
在上搜索有关此转换器的示例和信息FME知识中心.