我正在将json转换为xml,我正在为该数组添加一个内部数组的数组,我无法为内部数组设置null检查,在dataweave中获取脚本错误,我附加了示例Json请求和XML响应
{"test":[ {
"GroupId": "3",
"forms": [{
"formId": "2"
} ]
},
{ "GroupId": "3"
]
} ]}
和我正在生成的这个样本xml
<test>
<myforms>
<GroupId>3</GroupId>
<formId>2</formId>
</myforms>
<myforms>
<GroupId>7</GroupId>
<formId>8</formId>
</myforms>
</test>
和我的DW脚本在
之下%dw 1.0
%output application/xml
---
{
(test: {
(payload.test map {
myforms: {
GroupId: $.GroupId as :number,
(($.forms map {
formId:$.formId
})) when payload.test.forms !=null
}
})
}) when payload.test !=null
}
问题: - 我无法对内部数组进行空检查,即当payload.test.forms!= null时 它抛出一个脚本错误,在带有dataweave错误标记的快照下面,请告诉如何设置内部数组循环的null检查
答案 0 :(得分:1)
由于您的语法原因,您会收到此类错误
你可以尝试($.forms default [] map {
formId:$.formId
})
,像这样:
{{1}}
这将有助于获得预期的结果
答案 1 :(得分:0)
请尝试以下代码: -
%dw 1.0
%output application/xml
---
{
test : {
(payload.test map {
myforms : {
GroupId: $.GroupId as :number,
($.forms default [] map {
formId : $.formId
})
}
})
}
}