Как выровнять вложенный объект в объект одной глубины с помощью JSONata? - PullRequest
0 голосов
/ 23 марта 2020

Я новичок в JSONata, и у меня возникли проблемы с созданием функции сглаживания.

Я хочу включить этот ввод:

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

В это:

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

Кто-нибудь может мне помочь? Поискали здесь и в Google, но не смогли найти что-то, что привело бы меня в правильном направлении.

Спасибо

1 Ответ

1 голос
/ 24 марта 2020
(
    $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_

...