Dataweave递归限制?
Dataweave recursion limit?
我有以下 DW 2.0 函数,用于在 JSON 有效负载中的任何字符串值上修剪白色 space:
fun whiteSpaceTrimmer(item) = item match {
case is Array -> $ map whiteSpaceTrimmer($)
case is Object -> $ mapObject {
($$): $ match {
case is String -> trim($)
case is Object -> whiteSpaceTrimmer($)
case is Array -> $ map whiteSpaceTrimmer($)
else -> $
}
}
case is String -> trim($)
else -> $
}
因为它是递归的,我不确定在抛出异常之前它可以处理多深的嵌套结构。我可以传递给此函数的嵌套元素数量是否有限制?如果有,还有更好的方法吗?
您好,当前的 MaxExecutionStack 是 256。这意味着您的数据结构在抛出 Whosebug 之前可以有多达 255 层的嵌套。如果这个数字对你来说不够,有一个名为 com.mulesoft.dw.stacksize
的系统 属性 允许你更改这个值。
我有以下 DW 2.0 函数,用于在 JSON 有效负载中的任何字符串值上修剪白色 space:
fun whiteSpaceTrimmer(item) = item match {
case is Array -> $ map whiteSpaceTrimmer($)
case is Object -> $ mapObject {
($$): $ match {
case is String -> trim($)
case is Object -> whiteSpaceTrimmer($)
case is Array -> $ map whiteSpaceTrimmer($)
else -> $
}
}
case is String -> trim($)
else -> $
}
因为它是递归的,我不确定在抛出异常之前它可以处理多深的嵌套结构。我可以传递给此函数的嵌套元素数量是否有限制?如果有,还有更好的方法吗?
您好,当前的 MaxExecutionStack 是 256。这意味着您的数据结构在抛出 Whosebug 之前可以有多达 255 层的嵌套。如果这个数字对你来说不够,有一个名为 com.mulesoft.dw.stacksize
的系统 属性 允许你更改这个值。