Mule Dataweave空数组输入添加默认键:值

Mule Dataweave空数组输入添加默认键:值,mule,dataweave,Mule,Dataweave,有没有一种方法可以将json数组中的http响应映射到另一个也考虑默认值的json映射,即当它为空时映射默认密钥对 输入 请求输出 {"table":[{ "a-key1": "deafault-value", "a-key2": "x", "b-key2": "y" }] } 您只能在null的情况下使用默认关键字,但对于空数组和空数组,您可以使用 %dw 1.0 %output application/json %function getDefault(inputdata,

有没有一种方法可以将json数组中的http响应映射到另一个也考虑默认值的json映射,即当它为空时映射默认密钥对

输入

请求输出

{"table":[{
  "a-key1": "deafault-value",
  "a-key2": "x",
  "b-key2": "y"
  }]
}

您只能在null的情况下使用默认关键字,但对于空数组和空数组,您可以使用

%dw 1.0
%output application/json
%function getDefault(inputdata, defaultvalue)  inputdata when inputdata != null and (sizeOf inputdata) > 0 otherwise defaultvalue
---
{"table": [{
  "a-key1": getDefault(payload.key1,"defaultKey1") ,
  "a-key2": getDefault(payload.key2,"defaultKey2"),
  "b-key2": getDefault(payload.key3,"defaultKey2")

  }]
}
假设有效负载是标头或查询参数

希望这有帮助。


<dw:transform-message doc:name="Transform Message" metadata:id="....">
<dw:input-payload mimeType="application/xml"/>
<dw:set-payload>
<![CDATA[%dw 1.0
%output application/xml
---
{
    table: {
        (payload.*object map ( {
            key: $.value when $.value != empty
                 otherwise 'deafault-value'
        }))
    }
}
]]>
</dw:set-payload>
</dw:transform-message>

描述不准确。输入是一个JSON对象,其中每个键都包含一个数组。
<dw:transform-message doc:name="Transform Message" metadata:id="....">
<dw:input-payload mimeType="application/xml"/>
<dw:set-payload>
<![CDATA[%dw 1.0
%output application/xml
---
{
    table: {
        (payload.*object map ( {
            key: $.value when $.value != empty
                 otherwise 'deafault-value'
        }))
    }
}
]]>
</dw:set-payload>
</dw:transform-message>