首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SnapLogic -修改Mapper中的数组元素

SnapLogic -修改Mapper中的数组元素
EN

Stack Overflow用户
提问于 2019-11-26 21:26:16
回答 1查看 903关注 0票数 2

我现在有一个传入的.json文件,我正在通过一个Mapper快照进行路由。在映射器快照中,我需要使用一个名称bob.joneseric.smith等数组,并将字符串@email.com添加到每个名称中。架构中这些名称的路径是:

代码语言:javascript
复制
jsonPath($, "$response.entity[*].target.name")

结构看起来是这样的:

代码语言:javascript
复制
{
    "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。我试图找出一个表达式,它可以编辑数组项而不改变它们的结构。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-26 22:49:28

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

代码语言:javascript
复制
{
    "response": {
        "entity": [
            {
                "target": {
                    "name": "bob.jones"
                }
            },
            {
                "target": {
                    "name": "eric.smith"
                }
            }
        ]
    }
}

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

如果您想要的输出如下:

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

代码语言:javascript
复制
$response.entity.map(e => e.target.name + '@email.com')

如果您想要的输出如下:

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59059562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档