首页 > 解决方案 > Mule-使用 dataweave 从 Json 对象中提取密钥

问题描述

我需要从 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"
        }

    ]
}

}

标签: muledataweave

解决方案


标签采摘对我有用。这是示例:

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

     {  
        key:$$,
        value:$
     }


}

}


推荐阅读