如何通过在ESB中的其他json中插入json来丰富数据

时间:2017-09-26 09:57:55

标签: json routes apache-camel esb jboss-esb

我使用Camel API在我的ESB项目中进行路由,并对特定问题有以下要求: -

有一个使用表单标记URI调用的Web服务,它将请求作为JSON接收并使用JSON数据响应POST调用。我需要将请求JSON数据作为我的响应JSON中的一个字段包含在内。我正在寻找一种可能丰富我信息的方法。我可以通过在java类中编写转换逻辑来实现。 但 约束是我不能使用单独的Java类进行数据转换。我必须通过使用标签在camelContext中配置来完成它。请建议。

2 个答案:

答案 0 :(得分:0)

您可以将整个Json主体读作树 JsonNode body = mapper.readTree(input); 然后用你的结构来丰富它。 例如,如果您有下一个json正文:

{"valueList": {
    "key": "1",
    "value": "2"
  }
}

你可以用这段代码来丰富它:

  ObjectMapper mapper = new ObjectMapper();
  ObjectNode rootNode = mapper.createObjectNode();
  ArrayNode headersList = mapper.createArrayNode();
  rootNode.set("headersList", headersList);
  rootNode.putPOJO("valueList", body.get("valueList"));

答案 1 :(得分:0)

我认为您需要查看setBody方法。请检查here.

...
<setBody>
<simple>
{
"message" : "${body}"
}
</simple>
</setBody>
...