7.11. 使用数据映射器来处理集合
在流中,当步骤输出集合以及流中的后续连接时,您可以使用数据映射器来指定流如何处理集合。
当步骤输出集合时,流程视觉化会在步骤的详情中显示 Collection。例如:
在提供集合的步骤后添加数据映射程序步骤,并在需要映射的步骤之前添加。准确在这个数据映射程序步骤中,需要依赖于流程中的其他步骤。下图显示了从源集合字段到目标集合字段的映射:
在源和目标面板中,数据映射器会显示 来表示集合。
当集合是一个复杂的类型时,数据映射器会显示集合的子字段。您可以从/到每个字段映射。
当 source 字段嵌套在多个集合中时,您可以将其映射到满足其中一个条件的目标字段:
target 字段嵌套在与 source 字段相同的集合数量中。例如,允许这些映射:
-
/A<>/B<>/C
/D<>/E<>/F -
/A<>/B<>/C
/G<>/H/I<>/J
-
/A<>/B<>/C
target 字段仅嵌套在一个集合中。例如,允许这个映射:
/A<>/B<>/C
/K<>/L 在这种情况下,数据映射器使用深度优先算法来迭代源中的所有值。因此,数据映射程序会将源值放入单个目标集合中。
不允许以下映射:
/a<>/B<>/C cannot-map-to /M<>/N/O<>/P<>/Q
当 Fuse Online 执行流时,它会迭代源集合元素来填充目标集合元素。如果您将一个或多个源集合字段映射到目标集合字段或目标集合字段,则目标集合元素仅包含映射字段的值。
如果您将源集合中的字段映射到不在集合中的 target 字段,那么当 Fuse Online 执行流时,它将只分配源集合中最后一个元素的值。该映射步骤中会忽略集合中的任何其他元素。但是,任何后续映射步骤都可以访问源集合中的所有元素。
当连接返回 JSON 或 Java 文档中定义的集合时,数据映射器通常可以将源文档处理为集合。