使用流变量作为数组中的索引

Using a flow variable as the index in an array

我正在将 JSON 数据传递给具有数组数据的 Twilio Studio 流。假设它们是地址。我想遍历这个数组,并在每次迭代中有多个小部件来说出地址,然后捕获用户说 'yes' 或 'no' 以确认每个地址都是正确的。

我似乎失败的地方是使用流变量作为数组的索引。下面是 Say/Play 小部件中的代码。 flow.variables.address_idx 在之前的设置变量小部件中定义为 {{ 0 }}。 flow.variables.idx 定义为 0。注释不是代码的一部分,但比 Liquid 语法更简洁。

//this says 'zero'
The current index is {{flow.variables.address_idx}}.

//nothing
The address is
{{flow.data.addresses[flow.variables.address_idx].service_address_street_1}}

//nothing
The address is 
{{flow.data.addresses[flow.variables.idx].service_address_street_1}}

//this works
The address is {{flow.data.addresses[0].service_address_street_1}}

//this works
{% assign foo = 0 %}
The address is {{flow.data.addresses[foo].service_address_street_1}}

当我在 flow.variables 范围内使用变量时,索引似乎没有被视为整数,而是被视为字符串。哈希的字符串键似乎工作正常。

我是否缺少语法技巧?或者是否有另一种方法可以在数组迭代的主体中使用多个小部件?

此处为 Twilio 开发人员布道师。

流小部件可能正在将您的整数索引序列化为字符串。您是否尝试过将变量转换为整数?

根据 this answer,您可以使用数学过滤器来完成:

{% assign foo = flow.variables.address_idx | plus: 0 %}
The address is {{flow.data.addresses[foo].service_address_street_1}}

如果有帮助请告诉我。