使用骆驼分割Json阵列

时间:2018-07-01 16:15:23

标签: arrays json apache-camel apache-camel-aws

我有一条骆驼路线,它使用json的String对象,调用一个bean来剥离播放器的JSONArray。

from("direct:players").routeId("player_route")
    .bean(BootstrapStaticParser.class,"getPlayersList")
    .split(body())
    .to("direct:aws");

但是我打电话之后:

.split(body())

在LinkedHashMap中应该是什么json字符串,但我需要保持json格式才能将数据插入AWS DDB。

登录以显示问题

之前

Exchange[ExchangePattern: InOnly, BodyType: net.minidev.json.JSONArray, Body: [{"id":1,"photo":"48844.jpg","web_name":"Player1","team_code":3},{"id":2,"photo":"11334.jpg","web_name":"Player2","team_code":3},{"id":3,"photo":"98980.jpg","web_name":"Player3","team_code":3},{"id":4,"photo":"51507.jpg","web_name":"Player4","team_code":3},...]

之后

Exchange[ExchangePattern: InOnly, BodyType: java.util.LinkedHashMap, Body: {id=1, photo=48844.jpg, player=Player1, team_code=3}]

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

根据documentation of Camel Jsonpath,拆分的JSON文档部分的消息正文为Map。

但是,它说,使用 Camel 2.20 或更高版本,您可以使用jsonpathWriteAsString来获取JSON字符串而不是Map。

.split().jsonpathWriteAsString("$.yourJsonPath")

对于Cstrong的早期版本,您必须使用Camel JSON data format将消息主体从Map封送为JSON字符串。