小编sho*_*ens的帖子

Dataweave递归限制?

我具有以下DW 2.0函数,用于修剪JSON有效负载中任何字符串值上的空格:

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 -> $
}
Run Code Online (Sandbox Code Playgroud)

由于它是递归的,因此我不确定在抛出异常之前它可以处理多深的嵌套结构。我可以传递给此函数的嵌套元素数量有限制吗?如果是这样,有没有更好的方法?

dataweave

3
推荐指数
1
解决办法
53
查看次数

Dataweave 中的尾递归

有没有办法采用递归函数(如下所示)并使其成为尾递归?我有这样的输入:

{
    "message": "Test   ",
    "read": [
        {
            "test": "   t   "
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

和这个 Dataweave 函数

fun trimWS(item) = item match {
    case is Array -> $ map trimWS($)
    case is Object -> $ mapObject {
        ($$): $ match {
            case is String -> trim($)
            case is Object -> trimWS($)
            case is Array -> $ map trimWS($)
            else -> $
        }
    }
    case is String -> trim($)
    else -> $
}
Run Code Online (Sandbox Code Playgroud)

dataweave

2
推荐指数
1
解决办法
1316
查看次数

标签 统计

dataweave ×2