我将两个不同的有效载荷合并为一个有效载荷 [英] I merge two different payloads into one payload
本文介绍了我将两个不同的有效载荷合并为一个有效载荷的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在这里有两种格式的有效载荷:
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:
- 在分散收集的每个路由中,添加
<json:json-to-object-transformer returnClass="java.util.HashMap" />
将JSON有效负载转换为Map. - 在分散收集之后,添加以下内容以将地图列表转换为单个地图:
<set-payload value="#[groovy:payload.inject([:]) {result, part -> result.putAll(part); result}]" />
- 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. - 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}]" />
这篇关于我将两个不同的有效载荷合并为一个有效载荷的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文