忽略数据编织中 JSON 中缺少的数组对象



我正在使用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?
}

屈服:

{
}

相关内容

  • 没有找到相关文章

最新更新