嵌套的变量
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构建对象:
- 用API触发器创建一个新的工作流。
- 在“触发配置”面板中,给出触发名称和可选描述。
- 选择对象对于输入变量的变量类型,并为变量提供名称。
- 将出现对象项的子字段。通过选择变量类型并提供名称,根据常规配置变量。
- 若要向对象添加更多项,请单击嵌套的添加变量按钮。此按钮位于您正在编辑的当前对象变量的灰色边框中。
- 根据需要配置任何其他对象项。
- 根据需要,配置除对象之外的任何其他变量。
- 点击继续并根据需要配置您的工作流。
使用输入模板提取工件的嵌套数据
如果要在工件中显示来自嵌套变量的数据,则可以使用输入模板直接访问内容而无需额外的工作流程。