Mule - извлечение ключа из объекта Json с использованием dataweave - PullRequest
0 голосов
/ 25 мая 2018

Мне нужно извлечь ключ и значения из входного объекта json для формирования другого вывода json.

Я просмотрел документацию и другие вопросы, похожие на этот, где я мог узнать, что $$ дает ключ, но в моем случае он дает мне индекс, а не имя ключа.

Ввод json выглядит следующим образом: { "key2": "val2", "key3": "val3", "key4": "val4", "key5": "val5", "key6": "val6" }

Код данных, который я написал:

{
"someOtherKey": "val",
properties: {
    entry: payload map

     {  
        key:$$,
        value:$
     }


}

}

После преобразования яполучение:

{
 "someOtherKey": "val",
"properties": {
    "entry": [
        {
            "key": 0,
            "value": "val2"
        },
        {
            "key": 1,
            "value": "val3"
        },
        {
            "key": 2,
            "value": "val4"
        },
        {
            "key": 3,
            "value": "val5"
        },
        {
            "key": 4,
            "value": "val6"
        }
    ]
}

}

Здесь я ожидаю вывод с именем ключа в качестве значения для Ключ

Ожидаемый результат:

{
"someOtherKey": "val",
"properties": {
    "entry": [{
            "key": "key2",
            "value": "val2"
        },
        {
            "key": "key3",
            "value": "val3"
        },
        {
            "key": "key4",
            "value": "val4"
        },
        {
            "key": "key5",
            "value": "val5"
        },
        {
            "key": "key6",
            "value": "val6"
        }

    ]
}

}

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

тег срыв у меня сработал.Вот пример:

{
"someOtherKey": "val",
properties: {
    entry: payload pluck

     {  
        key:$$,
        value:$
     }


}

}

0 голосов
/ 25 мая 2018

Используйте mapObject вместо map

%dw 1.0
%output application/json
---
{
    key: "val",
    key1: "val1",
    properties: {
        entry: payload mapObject {  
            key:$$,
            value:$
         }
    }
}

Надеюсь, это поможет.

...