У меня есть верблюжий маршрут, который принимает объект String из json, вызывает bean-компонент, чтобы вырезать JSONArray игроков.
from("direct:players").routeId("player_route")
.bean(BootstrapStaticParser.class,"getPlayersList")
.split(body())
.to("direct:aws");
Однако после того, как я позвоню:
.split(body())
Какими должны быть строки json в LinkedHashMap, но мне нужно поддерживать формат 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}]
Любая помощь будет оценена по достоинству.



Согласно документация Camel Jsonpath телом сообщения разделенной части документа JSON является карта.
Однако в нем говорится, что с Верблюд 2.20 или новее вы можете использовать jsonpathWriteAsString для получения строки JSON вместо Map.
.split().jsonpathWriteAsString("$.yourJsonPath")
Для более ранние версии Camel вы должны использовать Формат данных Camel JSON для маршалинга тела сообщения с карты в строку JSON.
не могли бы вы рассказать подробнее?