Ich bin nicht sicher, wie sind Sie sowohl die Nutzlasten zugleich
bekommen Aber wenn Sie sind in der Lage, sowohl die Nutzlast und in der Lage zu speichern in zwei Strömungs-Variablen zu erhalten Dann können Sie einen Expressionstransformator verwenden, um Ihre kombinierte Nutzlast zu konstruieren.
Unten ist ein Beispiel können Sie versuchen, dynamisch sowohl die Nutzlast zu kombinieren: -
<set-payload value="{
"first": [{
"projectid": "15",
"approval_status": "A"
}, {
"projectid": "24",
"approval_status": "A"
}]
}" mimeType="application/json" doc:name="Set Payload"/>
<json:json-to-object-transformer returnClass="java.util.HashMap" doc:name="JSON to Object"/>
<set-variable variableName="var1" value="#[message.payload]" doc:name="Variable"/>
<set-payload value="{
"Second": [{
"projectid": "15",
"total": "123",
"updated": "yes"
}, {
"projectid": "24",
"total": "123",
"updated": "yes"
}]
}" mimeType="application/json" doc:name="Set Payload"/>
<json:json-to-object-transformer returnClass="java.util.HashMap" doc:name="JSON to Object"/>
<set-variable variableName="var2" value="#[message.payload]" doc:name="Variable"/>
<expression-transformer
expression="#[[
'Result':[
{
'projectid': flowVars.var1.first[0].projectid,
'total': flowVars.var2.Second[0].total,
'approval_status': flowVars.var1.first[0].approval_status
},
{
'projectid': flowVars.var1.first[1].projectid,
'total': flowVars.var2.Second[1].total,
'approval_status': flowVars.var1.first[1].approval_status
}
]]
]" doc:name="Expression"/>
<json:object-to-json-transformer doc:name="Object to JSON"/>
Bitte beachten Sie, das obige Beispiel ist es, Ihnen zu zeigen, wie die Nutzlast kombinieren dynamisch und schnell.
Hier müssen Sie sowohl die Nutzlast speichern in einem Flussvariable var1 und var2, (I have used set payload just to demonstrate, you need to get it dynamically
), dann können Sie die Nutzlast konstruieren dynamisch den Ausdruck Transformator
Beachten Sie auch, wenn Sie die json bekommen Payload in der exakt gleichen Struktur, können Sie den obigen Code für eine schnelle Kombination von Payloads verwenden ...
Aber, wenn Ihre JSON-Struktur Änderungen sagen ein weiteres Listenelement in Ihrer Nutzlast enthalten, dann müssen Sie den obigen Code ändern und Verwenden Sie eine for-Schleife, um die Werte zu erhalten.
Der obige Code wird eine schnelle kombinierte Nutzlast produzieren wie folgt: -
{
"Result": [
{
"total": "123",
"projectid": "15",
"approval_status": "A"
},
{
"total": "123",
"projectid": "24",
"approval_status": "A"
}
]
}
Der Eingang und der Ausgang sein müssen basierend auf Schlüssel zugeordnet und es wird dynamisch sein. –
Ich habe meine Antwort bearbeitet ... Kannst du es versuchen? Es wird dynamische IDs jetzt nehmen und auf ihnen basierend filtern – srbhvatsa