Mule Dataweaver int 数组到 xml 个元素 soap
Mule Dataweaver int array to xml elements soap
我在 MuleESB 中将整数数组转换为 xml 时遇到问题。
所以我有一个名为 UsagePoint
的对象,其中包含 groups=ArrayOfint [_int=[2]]
在我的转换组件 Transform Message 中,我尝试了以下转换方法,我故意遗漏了 ns0 namespace
:
%namespace ns1 http://schemas.microsoft.com/2003/10/Serialization/Arrays
%type groups = :object {class: "xmlinterface.ArrayOfint"}
--
ns0#Groups: {
ns1#int: payload.groups.int as :object
},
和
%namespace ns1 http://schemas.microsoft.com/2003/10/Serialization/Arrays
%type groups = :object {class: "xmlinterface.ArrayOfint"}
--
ns0#Groups: payload.groups map {
ns1#int: payload.groups.int as :object
},
和
%namespace ns1 http://schemas.microsoft.com/2003/10/Serialization/Arrays
--
ns0#Groups: {
ns1#int: payload.groups
},
我在转换器组件之前设置了一个流变量 groupint
通过使用以下方法调用获取数组 payload.getGroups().getInt()
结果是 [2]
我得到了一个反序列化错误 Int32.
%namespace ns1 http://schemas.microsoft.com/2003/10/Serialization/Arrays
--
ns0#Groups: {
ns1#int: flowVars.groupint
},
但是当我调用 payload.getGroups().getInt()[0]
以便我得到我的整数时,它工作正常。我的问题是数组中的元素可能不止一个。所以我想要一个结果:
<Groups>
<int>1</int>
<int>2</int>
<int>3</int>
...
</Groups>
而不是结果 xml.
中只能包含 1 个 int 元素的结果
我也试过只说ns0#Groups: payload.groups
。那么如何编写处理整数数组的 Dataweaver 表达式?
试试
%namespace ns1 http://schemas.microsoft.com/2003/10/Serialization/Arrays
%type groups = :object {class: "xmlinterface.ArrayOfint"}
--
ns0#Groups: {
(payload.groups.int map {ns1#int: $})
}
https://docs.mulesoft.com/mule-user-guide/v/3.7/dataweave-reference-documentation#dynamic-elements
我在 MuleESB 中将整数数组转换为 xml 时遇到问题。
所以我有一个名为 UsagePoint
的对象,其中包含 groups=ArrayOfint [_int=[2]]
在我的转换组件 Transform Message 中,我尝试了以下转换方法,我故意遗漏了 ns0 namespace
:
%namespace ns1 http://schemas.microsoft.com/2003/10/Serialization/Arrays
%type groups = :object {class: "xmlinterface.ArrayOfint"}
--
ns0#Groups: {
ns1#int: payload.groups.int as :object
},
和
%namespace ns1 http://schemas.microsoft.com/2003/10/Serialization/Arrays
%type groups = :object {class: "xmlinterface.ArrayOfint"}
--
ns0#Groups: payload.groups map {
ns1#int: payload.groups.int as :object
},
和
%namespace ns1 http://schemas.microsoft.com/2003/10/Serialization/Arrays
--
ns0#Groups: {
ns1#int: payload.groups
},
我在转换器组件之前设置了一个流变量 groupint
通过使用以下方法调用获取数组 payload.getGroups().getInt()
结果是 [2]
我得到了一个反序列化错误 Int32.
%namespace ns1 http://schemas.microsoft.com/2003/10/Serialization/Arrays
--
ns0#Groups: {
ns1#int: flowVars.groupint
},
但是当我调用 payload.getGroups().getInt()[0]
以便我得到我的整数时,它工作正常。我的问题是数组中的元素可能不止一个。所以我想要一个结果:
<Groups>
<int>1</int>
<int>2</int>
<int>3</int>
...
</Groups>
而不是结果 xml.
中只能包含 1 个 int 元素的结果我也试过只说ns0#Groups: payload.groups
。那么如何编写处理整数数组的 Dataweaver 表达式?
试试
%namespace ns1 http://schemas.microsoft.com/2003/10/Serialization/Arrays
%type groups = :object {class: "xmlinterface.ArrayOfint"}
--
ns0#Groups: {
(payload.groups.int map {ns1#int: $})
}
https://docs.mulesoft.com/mule-user-guide/v/3.7/dataweave-reference-documentation#dynamic-elements