Ich versuche derzeit herauszufinden, wie ich komplexe Dateneingabe in der WSO2 CEP behandeln könnte. Stellen wir uns vor ich eine Eingangsereignisdaten haben, die wie die unten:WSO2 CEP: Handle komplexe JSON-Objekte
{
"item_id":456,
"user_id":42,
"documents":[
{
"type":"word",
"name":"ordre de mission"
},
{
"type":"excel",
"name":"horaires"
},
{
"type":"pdf",
"name":"facture"
}
]
}
Im Idealfall würde Ich mag diese in drei Veranstaltungen zur Explosion gebracht sehen, wie in der Anordnung unter:
[
{
"item_id":456,
"user_id":42,
"type":"word",
"name":"ordre de mission"
},
{
"item_id":456,
"user_id":42,
"type":"excel",
"name":"horaires"
},
{
"item_id":456,
"user_id":42,
"type":"pdf",
"name":"facture"
}
]
Ich kann einfach nicht herausfinden, wie man so etwas kriegt ... Ich habe darüber nachgedacht, das "documents"
-Array genauso zu reinjizieren, wie es ein separates Ereignis war, so dass das CEP das Array in 3 Stream-Elemente aufteilen würde. Aber selbst wenn ich das könnte, wären item_id und user_id im Prozess verloren ... Bis jetzt ist das einzige, was ich bekomme, das Dokumentfeld, das in meinen Strömen in eine serialisierte Zeichenfolge umgewandelt wird, so dass es sinnlos erscheint die darin enthaltenen Daten abrufen ...
Das Beispiel, das ich hier zeige, ist ziemlich einfach gegen andere Dinge, die ich verwalten müsste, mit gekapselten Objekten und Array in mehreren Schichten. Wenn mir also jemand eine allgemeine Anweisung geben könnte, wie man mit Arrays und Objekten umgeht, wenn diese nicht die Wurzel der Event-Daten sind oder sogar übereinander gelegt werden, würde es mir wirklich helfen!
Werfen Sie einen Blick auf diesen Link: https://docs.wso2.com/display/CEP410/Input+Mapping+Types#InputMappingTypes-JSONinputmappingJSONInputMapping – CapturedTree