Apache Camel,如何拆分消息但将其保留在每个部分中?

uemypmqf  于 12个月前  发布在  Apache
关注(0)|答案(1)|浏览(118)

我有一条信息里面有一份目标名单。我想为每个目标单独处理此消息,但找不到方法。
给定一条消息,消息体为:

{
  "sample": "message",
  "targets": [
    "one", "two"
  ]
}

我想为targets数组中的每个项目路由消息的副本:

[
  {
    "sample": "message",
    "target": "one"
  },
  {
    "sample": "message",
    "target": "two"
  }
]

有什么帮助吗?

bjg7j2ky

bjg7j2ky1#

要以给定的JSON格式单独处理每个目标的消息,可以使用编程语言或脚本工具来遍历“targets”数组,并为每个目标创建消息的副本。下面是一个JavaScript示例:

const message = {
  "sample": "message",
  "targets": [
    "one", "two"
  ]
};

const processedMessages = message.targets.map(target => {
  return {
    ...message,
    "target": target
  };
});

console.log(processedMessages);

在这个例子中,我们使用map()函数来迭代“targets”数组中的每个元素。对于每个目标,我们使用spread操作符(...)创建一个新对象,从原始消息中复制属性,并添加一个具有当前目标值的新“目标”属性。
processedMessages数组将包含每个目标的单个已处理消息。然后,您可以根据需要对每个单独的消息执行进一步的操作或处理。
请注意,这是一个基本示例,具体实现可能会因您的特定编程语言或环境https://apkvenom.com/而异。

相关问题