【发布时间】:2021-12-02 23:29:59
【问题描述】:
大家好,我正在寻找数据编织 2.0 Logic 中问题的解决方案或想法
问题是如果字符串超过最大长度,则将字符串转换为多个数组
最大长度为 8
{"message" : "hello this is Muley"}
expected output is
{
"message": ["hello", "this is", "muley"]
}
我已经尝试使用地图和临时变量来存储值,但它给出了一个空数组
%dw 2.0
output application/json
var tmp=[[]]
var max=8
fun ck(tmp,data)=
(
if(sizeOf((tmp[-1] joinBy (" ") default "")++ " " ++ data) <= max )
(tmp[-1] << data)
else
tmp << [data]
)
var msd=(payload.message splitBy(" ") map(item, value) -> (ck(tmp, item)))
---
{"message": tmp map()-> $ joinBy " "}
输出是
{
"message": [ "" ]
}
【问题讨论】:
-
预期的输出是 { "message": ["hello", "this is", "muley"] } 还是 { "message": ["hello", "this", "is ", "骡子"] }
-
例外是 { "message": ["hello", "this is", "muley"] } 因为如果我想要 { "message": [" hello", "this", "is", "muley"] } 我可以简单地使用 {message: payload.message splitBy(" ")}
-
-
是的,这样每个数组元素都将在输出的新行中打印
标签: arrays loops reduce dataweave mule4