问题描述
我有一个元素<ABC xsi:nil="true">
。我想在dataweave 2.0中编写一个条件来检查此xsi:nil的值,如果它等于“ true”,我想在JSON中转换为"ABC": null
,则在其中使用skipNullOn =“ everywhere”脚本。我尝试使用payload.ABC.@nil == "true"
,但它给出的是null
解决方法
这可能有帮助。
%dw 2.0
output application/json skipNullOn="everywhere"
fun replaceElementAndAttribute(value:Any,name: String,newValue: Any) = do {
value match {
case obj is Object -> obj mapObject ((value,key,index) ->
if(key.@nil ~= "true")
(key): "null"
else
(key) @((replaceElementAndAttribute(key.@,name,newValue))): replaceElementAndAttribute(value,newValue)
)
else -> value
}
}
---
replaceElementAndAttribute(payload,"","")
这类似于所提到的here。
但是,通过此递归函数,它将以“ null”字符串的形式输出值。