繁体   English   中英

为dataweave中的数组添加null检查

[英]add null check for an array in dataweave

我正在将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的脚本错误,请告诉我如何对内部数组循环设置空检查

在此处输入图片说明

那是因为您的语法,您得到这样的错误。
您可以尝试使用default [] ,如下所示:

($.forms default [] map {

                    formId:$.formId

                })  

那将有助于获得您的预期结果

试试下面的代码:

%dw 1.0
%output application/xml
---
{
    test : {
         (payload.test map {
            myforms : {
                GroupId: $.GroupId as :number,
                 ($.forms default [] map {

                   formId : $.formId

                })
            }
        })
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM