MULE HTTP接收JSON資料注意事項&解析JSON字串
阿新 • • 發佈:2019-02-19
一般來說,當使用POST方法傳遞JSON資料到HTTP元件後,此時如果放置一個Logger元件,會發現經過HTTP元件後,payload的型別實際是org.glassfish.grizzly.utils.BufferInputStream
,因為經過HTTP後將負載變為了流的形式了。
如果需要還原為JSON格式字串,方法有兩個:
(1)在HTTP元件後,使用Object to String
元件將payload轉為String,最簡單的方法。
(2)使用MEL表示式#[message.payloadAs(java.lang.String)]
(3)java中可以繼承AbstractMessageTransformer
MuleMessage
類的getPayloadAsString()
方法。
如果你需要在java元件裡面解析JSON字串,那麼可以使用org.json.simple
裡面的類來解析,這個jar包Mule裡面已經引入,因此可以直接使用,程式碼如下:
/**
* 將JSON字串轉為org.json.simple.JSONObject
* @param jsonStr JSON字串
* @return JOSNObject物件
* @throws ParseException
*/
public JSONObject convertSting2JSONObject (String jsonStr) throws ParseException {
JSONParser parser = new JSONParser();
JSONObject object = (JSONObject) parser.parse(jsonStr);
return object;
}
但是上面的程式碼只支援JSON物件,如果JSON字串是陣列,則會出現型別轉換錯誤