2016-07-26 22 views
1

Ich habe einen String wie folgt aus (die wie eine Karte sieht)String Karte/JSON-Objekt - Mule DataWeave

{key1 = value1; key2 = Wert2; key3 = value3; ... keyn = wertn ;}

, die ich möchte entweder zu einem Java-Objekt oder als JSON-Nutzlast wie folgt konvertieren:

{ "key1": "Wert1", "key2": "Wert2", "key3": " value3 ", ..." keyn ":" werten "}

Gibt es einen Maultier Weg, es zu tun? Ich versuche zu vermeiden, eine benutzerdefinierte Java-Klasse für dieses Problem zu schreiben. Etwas, das Datenweben kann helfen?

Antwort

0

Ich habe folgende in Dataweave verwendet, um Zeichenfolge zu manipulieren.

%dw 1.0 
%output application/json 
--- 
(payload replace /[{}]/ with "" splitBy ";") map using (data = $ splitBy "=") { 
    (data[0]) : data[1] 
} 

Eingangsdaten: -

"{key1=value1;key2=value2;key3=value3;keyn=valuen}"

Ausgang: -

[ 
    { 
    "key1": "value1" 
    }, 
    { 
    "key2": "value2" 
    }, 
    { 
    "key3": "value3" 
    }, 
    { 
    "keyn": "valuen" 
    } 
] 

this helps ..

+0

danke @anupambhusari, ich möchte sie nicht wirklich in ein Array setzen. Ist es möglich, als einzelne Karte zu transformieren, wie in meinem Beispiel gezeigt? - {"Schlüssel1": "Wert1", "Schlüssel2": "Wert2", "Schlüssel3": "Wert3", "Schlüssel": "Wert"} – gnanagurus