SnapLogic - 改变 Mapper 中的数组元素

SnapLogic - Altering array elements in Mapper

我目前有一个传入的 .json 文件,我正在通过 Mapper 快照进行路由。在那个映射器快照中,我需要获取一个名称数组 bob.joneseric.smith 等,并将字符串 @email.com 添加到它们中的每一个。这些名称在模式中的路径是:

jsonPath($, "$response.entity[*].target.name")

结构如下所示:

{
    "entity": [
        {
            "target": {
                "name": "bob.jones"
            }
        },
        {
            "target": {
                "name": "eric.smith"
            }
        },
        ...
    ]
}

只需映射路径 jsonPath($, "$response.entity[*].target.name") 即可传递名称并输出 bob.joneseric.smith。我尝试在数组上使用 .concat(),但所做的只是将 @email.com 添加到列表中,所以我得到了 bob.jones, eric.smith, @email.com。我正在尝试找出一个可以在不更改数组项结构的情况下编辑数组项的表达式。

根据您提供的 JSON 路径 - jsonPath($, "$response.entity[*].target.name") - 我创建了以下 JSON.

{
    "response": {
        "entity": [
            {
                "target": {
                    "name": "bob.jones"
                }
            },
            {
                "target": {
                    "name": "eric.smith"
                }
            }
        ]
    }
}

我把它放在 JSON 生成器中,这样我就可以将它作为文档获取。参考以下截图。

如果你想要的输出如下:

然后在映射器中使用以下表达式。

$response.entity.map(e => e.target.name + '@email.com')

否则,如果您想要的输出如下:

然后在您的映射器中使用以下设置。