您提供的列表无效
json
,这意味着很难在一张快速地图中实现这一目标。
我确实通过以下方法实现了您的要求:
第一个格式化程序只是传递您在帖子中提供的
list
。这可以是可以传递此数据的任何其他节点。
第二个格式化程序是将
list
传递到有效的 json
主体中,以便我们可以转换原始数据进行数学运算。我正在使用的json
主体可以在下面的屏幕截图中看到。 {List}
是我用来将列表传递到第二个格式化程序的变量。
对于我的第一个 Quickmap 节点,我刚刚创建了一个非常简单的
json
主体,它能够接受将值拆分为自己的元素。我还将源有效负载中的 Numbers
字段以及 Number 字段映射到最低容器,以便 Quickmap 知道我们正在处理一组项目。您也可以在此处将数字加 1。
在我的第二个快速地图中,我具有与上一个快速地图相同的源和目标结构,并且我将其映射如下。
完成上述操作后,我将名为 Numbers 的列表传递到格式化程序中,表达式如下:
root.Doc.Numbers
。需要注意的是,Flowgear 默认情况下会传递索引为 0 的项目,如下所示:root.Doc.Numbers[0]
。您必须单击表达式框并删除 [0]
部分。
此时,格式化程序将尝试识别列表中数字的数据类型,从我的测试来看,它看起来将其识别为
float
,所以我需要使用Replace
节点来摆脱“.0”。
上述的替代方法就是使用
For Each
节点迭代列表,将值插入到某种可用的 xml
或 json
文档中(就像我们上面所做的那样),然后将它们传递到 Quickmap 中将 1 添加到您的数字中,然后使用 String Builder
节点将 Quickmap 后面的值与逗号一起添加到 append
中。您可以将另一个 String Builder
节点连接到 Finished
的 For Each
腿,然后 read
完成时附加的内容。读完数据后,你应该得到这样的结果:For Each
。最后一步是将此值括在方括号中,并将 2,3,4,5,6,
替换为 ,]
。