我将两个不同的有效载荷合并为一个有效载荷

问题描述:

我在这里有两种格式的有效载荷:

I have two different payloads here in format:

{"addressLine1":"POSBUS 007","addressLine3":"-1","postalCode":"1200"}
{"email":"xxxx@xxx.net"}. 

如果我使用散点图收集,则会得到以下有效载荷:

If I use the scatter gather i get the following payload:

[{"addressLine1":"POSBUS 007","addressLine3":"-1","postalCode":"1200"}, {"email":"xxxx@xxx.net"}]

但是我想做的是将这两个有效负载合并为一个有效负载,例如:

But what I want to do is merge those two payloads into one payload like for instance:

  {"addressLine1":"POSBUS 007","addressLine3":"-1","postalCode":"1200", "email":"xxxx@xxx.net"}

有几种解决此问题的好方法.这是使用groovy的一种:

There are several good ways to solve this problem. Here's one using groovy:

  1. 在分散收集的每个路由中,添加<json:json-to-object-transformer returnClass="java.util.HashMap" />将JSON有效负载转换为Map.
  2. 在分散收集之后,添加以下内容以将地图列表转换为单个地图:<set-payload value="#[groovy:payload.inject([:]) {result, part -> result.putAll(part); result}]" />
  1. In each route of the scatter-gather, add a <json:json-to-object-transformer returnClass="java.util.HashMap" /> to transform the JSON payload to a Map.
  2. After the scatter-gather, add the following to transform the list of maps into a single map: <set-payload value="#[groovy:payload.inject([:]) {result, part -> result.putAll(part); result}]" />