我正在使用Anypoint Studio 6.1和Mule 3.8.1,并在Dataweave中将JSON映射到JSON。 在 JSON 映射中,我有一个名为"通道"的可选字段,其中包含字符串列表。 当该字段不存在时,我会在 Dataweave 中收到警告。 如何编写数据编织代码以忽略其空值?
数据编织代码:
%dw 1.0
%output application/json skipNullOn="everywhere"
---
payload map ((payload01 , indexOfPayload01) -> {
Channels: payload01.Channels map ((channel , indexOfAccessChannel) -> channel)
})
我尝试使用"when"和"?"选择器修饰符,但语法不正确。
谢谢
您使用when
和?
运算符是正确的。您只需要使用括号来确保它们适用于正确的内容。 请注意,我使用 $
作为示例中 payload01
参数的简写。
%dw 1.0
%output application/json
---
payload map {
(Channels: $.Channels map (lower $)) when $.Channels?
}
如果不需要在每个项中的Channels
数组上使用map
,则可以允许null
通过:
payload map {
Channels: $.Channels
}
对于不包含Channels
字段的输入对象,这将产生以下内容:
{
Channels: null
}
添加括号允许我们使用when
来确定是否应该输出整个键/值对(也称为元组):
payload map {
(Channels: $.Channels) when $.Channels?
}
屈服:
{
}