有没有办法将json数组中的http响应映射到另一个json映射,同时考虑默认值,即当它为空时映射默认密钥对?
输入
{
"key1": []
"key2":[x,y]
}
请求输出
{"table":[{
"a-key1": "deafault-value",
"a-key2": "x",
"b-key2": "y"
}]
}
答案 0 :(得分:0)
您只能在null的情况下使用default关键字,但对于空白和空数组,您可以使用类似
的内容%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")
}]
}
假设有效负载是标头或查询参数。
希望这有帮助。
答案 1 :(得分:0)
<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>