2

我目前有一个通过Mapper snap.json路由的传入文件。在那个映射器快照中,我需要获取一个名称数组,等等,并将字符串添加到它们中的每一个。这些名称在模式中的路径是: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. 我试图找出一个可以编辑数组项而不改变其结构的表达式。

4

1 回答 1

3

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

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

我把它放在一个 JSON 生成器中,以便我可以将它作为文档获取。请参阅以下屏幕截图。

JSON 生成器

如果您想要的输出如下:

映射器案例 1

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

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

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

映射器案例 2

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

映射器案例 2 设置

于 2019-11-26T22:49:28.823 回答