JSONata递归映射

时间:2020-06-16 09:35:51

标签: jsonata

我正在尝试执行递归映射。

这是我的示例:https://try.jsonata.org/jN2b0Pt2t

在这个简单的复制器中,我试图将带有“名称”,“年龄”和“父母”的原始“人物”重新映射为仅“ n”和“ p”(代表映射的“名称”和“家长”)。

我不知道为什么这不起作用。

如果我在$person($v)函数中使用$map(..),则会收到堆栈溢出错误,因此我知道递归正在发生!

任何帮助表示赞赏。

谢谢

迈克

1 个答案:

答案 0 :(得分:0)

问题全是我的;以下映射可以正常工作:

(
    $person := function($node) {
        $node ~> $map(function($v, $i) {
            {"n":$v.Name, "p":$person($v.Parent.Person)}
        })
    };

{
    "Person": Person ~> $person($)
}
)