无法通过(`String`,`Array <String>`)

时间:2019-11-11 16:29:19

标签: mule dataweave

我正在尝试格式化phoneNumber: "+1" ++ payload.phoneNumber之类的电话号码,但遇到错误,无法将Array强制转换为String。为什么我的输出会认为我有一个数组而不只是一个字符串?

我收到的错误消息是... “无法通过(++String)来呼叫Array<String>:     -预期类型:Array<S>,但得到:String。”

2 个答案:

答案 0 :(得分:4)

这里的问题是根据元数据payload.phoneNumber是一个数组。这可能是因为payload是一个Array,然后payload.phoneNumber将返回所有元素payload的所有电话号码,或者是因为phoneNumber是一个Array。因此,很可能您想做一个map或只选择第一个元素。

答案 1 :(得分:0)

您可以使用dataweave joinBy(),其中payload.phonenumber是数组[1,2,3,4]

phoneNumber: ("+1" ++ joinBy(payload.phoneNumber,"") as String)