如何使用 JSONata 将嵌套对象展平为单个深度对象?

How to flatten nested object to single depth object with JSONata?

我是 JSONata 的新手,在创建展平函数时遇到了一些问题。

我想转这个输入:

{
        "user": {
        "key_value_map": {
            "CreatedDate": "123424",
            "Department": {
                "Name": "XYZ"
            }
        }
    }
}

进入这个:

{
    "user.key_value_map.CreatedDate": "123424",
    "user.key_value_map.Department.Name": "XYZ"
}

谁能帮帮我?在这里和 google 上搜索,但找不到可以引导我走向正确方向的东西。

谢谢

(
    $fn := function($o, $prefix) { 
        $each($o, function($v, $k) {(
            $name := $join([$prefix,$k], '.');
            $type($v) = 'object' ? $fn($v, $name): {
                $name: $v
            }
        )}) ~> $merge()
    };
    $fn($)
)

https://try.jsonata.org/WCUxC-r4_