嵌套的变量

InsightConnect步骤摄取并产生可以是的变量字符串、整数、布尔值、数组或对象。数组和对象可以包含其他变量,例如字符串数组。

嵌套变量创建数据的“层次”,以更好地组织、提取和与工作流数据交互。许多InsightConnect插件会自动为某些数据创建嵌套变量,但您也可以在构建触发器或编辑输出模式时创建嵌套变量。

阵列

数组是由逗号分隔并由方括号括起来的项目列表。数组中的项目可以是您指定的任何数据类型。

数组阵列

数组的数组通常包含相同数据类型的数组,尽管数组的数组可以包含不同类型的子数组。例如,父数组可以包含字符串数组,然后是整数数组,然后是布尔数组[[“你好”、“你好”、“你好”],[3、4、5],[真,假,假]]。我们建议使用一致的数据类型创建阵列数组,以便更容易解析。

每个数组都必须用方括号括起来,包括嵌套的数组。

你可以使用以下方法访问嵌套数组中的数据:

考虑一个由API触发器创建的数组的示例数组:[apitrigger]。[variablename]。每个子阵列包含三个整数,如:[[0,1,2],[3,4,5],[6,7,8]]

用循环提取数组数据的数组

要从这个带有循环步骤的数组数组中提取单个整数,可以创建两个循环。对于本例,工作流中的第一个循环是FirstLoop.而嵌套在第一个里面的第二个是innerloop.。第一个循环在[APITrigger]上迭代。[VariableName],然后内部循环遍历第一个循环[FirstLoop].[$item]创建的变量。[FirstLoop]。[$item]指当前嵌套的数组——对于父循环的第一次迭代,这是第一个数组[0,1,2]。第二个内部循环从数组中提取这些单独的整数0、1和2。要引用内部循环的当前迭代(整数),再次使用$item变量,这次是[InnerLoop].[$item]。

使用这些循环的工作流的输出将每个整数打印一个伪像,每次递增数字。

嵌套循环体系结构与嵌套数组数据结构相似。

从带有索引的数组数据中提取数组

或者,您可以使用阵列的每个级别的索引号将嵌套数组数据提取。此方法不推荐用于不断重新洗牌或调整数据大小的大型数据集,但如果您有固定数组并且只需要来自嵌套数组中某些位置的数据,则可以使用此方法。

数组索引从0开始,不是1.[[0 1 2],[3、4、5],[6 7 8]]示例,第一个子阵列的0索引整数为0,第二个子阵列的0索引整数是3,第三个子array的2索引整数是8。

要在特定索引位置提取嵌套数组的数据,既需要子数组在父数组中的索引位置,也需要子数组中项目的索引位置。在本例中,[Trigger].[ArrayOfArrays].[0]。[1]检索整数1和[Trigger].[ArrayOfArrays].[2].[2].[2].[1]检索整数1和[Trigger].[ArrayOfArrays]。[1]检索整数7。

对象

许多InsightConnect插件使用对象变量,将多条数据聚合到一个父变量中。对象无法分解为其各个组件,但您可以将每个组件的信息作为子变量提取。

考虑一个名为[StepName]的对象。[ObjectVariable]的内容:

         
1
{“地址”:“1.2.3.4”,“端口”:22,“域”:“something.com”}

该节点包含三种类型:IP地址字符串、整数端口号和域名字符串。

变量引用[StepName]。[ObjectVariable]检索整个对象,但不是三个嵌套项中的任何一个。您可以按键名提取项目:[StepName].[ObjectVariable]。(地址)返回1.2.3.4为例。

对象在对象

也可以在对象中嵌套对象。按照下面的示例格式从嵌套对象中提取数据:[StepName]。[ParentObject]。[ChildObject]。(例子)

使用InsightConnect UI创建对象

如果构建一个接受对象作为输入的触发器,则可以在触发器配置面板中逐键构建对象。

使用InsightConnect UI构建对象:

  1. 用API触发器创建一个新的工作流。
  2. 在“触发配置”面板中,给出触发名称和可选描述。
  3. 选择对象对于输入变量的变量类型,并为变量提供名称。
  4. 将出现对象项的子字段。通过选择变量类型并提供名称,根据常规配置变量。
  5. 若要向对象添加更多项,请单击嵌套的添加变量按钮。此按钮位于您正在编辑的当前对象变量的灰色边框中。
  6. 根据需要配置任何其他对象项。
  7. 根据需要,配置除对象之外的任何其他变量。
  8. 点击继续并根据需要配置您的工作流。

使用输入模板提取工件的嵌套数据

如果要在工件中显示来自嵌套变量的数据,则可以使用输入模板直接访问内容而无需额外的工作流程。

了解如何使用输入模板显示阵列或JSON对象内容。