Кроме DataMapper, которая является особенностью Enterprise, вы можете использовать Expression трансформатор компонент для создания JSON полезной нагрузки.
Итак, когда вы получаете полезную нагрузку JSON после вашего HTTP, вы анализируете JSON с использованием json-to-object-transformer (тип возврата зависит от вашего JSON), сохраняйте значение элементов в переменной и, наконец, используйте Выражение трансформатор создать свой динамический JSON ..
Давайте рассмотрим очень простой пример, пусть ваш JSON будет
{
"name": "Julio Cejas",
"id": 37
}
Теперь вы хотите преобразовать в следующий JSON, добавив дополнительный элемент,
{
"name": "Julio Cejas",
"id": 37,
"designation": "Director"
}
Таким образом, вы можете преобразовать из одного JSON другого динамически с помощью Expression трансформатора в следующем потоке: -
<flow name="DynamicJSONFlow1" doc:name="DynamicJSONFlow1">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8085" path="test" doc:name="HTTP"/>
<json:json-to-object-transformer returnClass="java.lang.Object" doc:name="JSON to Object"/>
<set-variable variableName="name" value="#[message.payload.name]" doc:name="Variable"/>
<set-variable variableName="id" value="#[message.payload.id]" doc:name="Variable"/>
<expression-transformer
expression="#[[
'name':flowVars.name,
'id':flowVars.id,
'designation':'Designation'
]
]" doc:name="Expression"/>
<json:object-to-json-transformer doc:name="Object to JSON"/>
<logger level="INFO" message="#[message.payload]" doc:name="Logger"/>
</flow>
Вы можете изменить этот поток согласно вашему требованию, и вы можете генерировать JSON, который вам нужен в любом формате очень простым способом
Спасибо вам за поддержку Anirban !!! –