Flowgear 数据转换

问题描述 投票:0回答:1

在 Flowgear 中,我有一个列表 [2,3,4,5,6],我需要为每个元素添加 1。有没有办法使用快速映射/格式化程序节点来实现此目的?

integration flowgear
1个回答
0
投票

您提供的列表无效

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,
替换为
,]
    

© www.soinside.com 2019 - 2024. All rights reserved.