将XML中的空值跳过为JSON,而不跳过可设置元素

问题描述

我有一个XML输入:

<XML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <ABC xsi:nil="true"/>
</XML>

数据织法代码

%dw2.0
output application/json skipNullOn="everywhere"
---
{
  abc: payload.ABC,def: payload.DEF 
}

预期输出

{
  "abc": null
}

我想跳过XML中的空值,但不希望跳过那些可空值,即包含xsi:nil =“ true”的元素

解决方法

您可以使用以下dataweave构造来定义应在输出有效负载中写入哪些元素:

cmd

示例: dw do not output missing input elements

,

DataWeave中缺少昏迷

%dw 2.0
output application/json
---
{
  (abc: payload.XML.ABC) if (payload.XML.ABC?),//abc will be written only if it exists in the payload (whether its value is nil or not)
  (def: payload.XML.DEF) if (payload.XML.DEF?)  //def will be written only if it exists in the payload (whether its value is nil or not)
}