在 Dataweave 中忽略 JSON 中缺失的数组对象
Ignore missing array objects from JSON in Dataweave
我正在使用 Anypoint Studio 6.1 和 Mule 3.8.1,并且正在 Dataweave 中将 JSON 映射到 JSON。在 JSON 映射中,我有一个名为 "Channels" 的可选字段,其中包含一个字符串列表。当该字段不存在时,我会在 Dataweave 中收到警告。我如何编写 Dataweave 代码以在其为 null 时忽略?
数据编织代码:
%dw 1.0
%output application/json skipNullOn="everywhere"
---
payload map ((payload01 , indexOfPayload01) -> {
Channels: payload01.Channels map ((channel , indexOfAccessChannel) -> channel)
})
我试过使用 "when" 和“?”选择器修饰符但语法不正确。
谢谢
您使用 when
和 ?
运算符是正确的。您只需要使用括号来确保它们适用于正确的事物。请注意,在您的示例中,我使用 $
作为 shorthand 作为 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
来确定是否应该输出整个 key/value 对(又名元组):
payload map {
(Channels: $.Channels) when $.Channels?
}
产量:
{
}
我正在使用 Anypoint Studio 6.1 和 Mule 3.8.1,并且正在 Dataweave 中将 JSON 映射到 JSON。在 JSON 映射中,我有一个名为 "Channels" 的可选字段,其中包含一个字符串列表。当该字段不存在时,我会在 Dataweave 中收到警告。我如何编写 Dataweave 代码以在其为 null 时忽略?
数据编织代码:
%dw 1.0
%output application/json skipNullOn="everywhere"
---
payload map ((payload01 , indexOfPayload01) -> {
Channels: payload01.Channels map ((channel , indexOfAccessChannel) -> channel)
})
我试过使用 "when" 和“?”选择器修饰符但语法不正确。
谢谢
您使用 when
和 ?
运算符是正确的。您只需要使用括号来确保它们适用于正确的事物。请注意,在您的示例中,我使用 $
作为 shorthand 作为 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
来确定是否应该输出整个 key/value 对(又名元组):
payload map {
(Channels: $.Channels) when $.Channels?
}
产量:
{
}