[英]How to convert java object to JSON after java:invoke in mule 4
我正在使用 mule 4。我正在調用一個 java 方法,它返回一個 java 對象作為有效負載。 如果嘗試打印有效負載,我會得到類似com.myproject.services.DataInjectorManager$MyClass@7606ba6e
。 我如何將其轉換為 JSON? 我的騾子流是:
<flow name="processFile">
<http:listener config-ref="HttpListenerConfig" path="/processFile" allowedMethods="GET">
<http:response statusCode="200"/>
</http:listener>
<java:invoke doc:name="Invoke" doc:id="d56b8f5a-4dfa-4737-b6f3-b740585ab58d" instance="dataInjectorManager"
class="com.myproject.services.DataInjectorManager"
method="processFile(java.lang.String)">
<java:args>#[{
'arg0': attributes.queryParams.file
}]
</java:args>
</java:invoke>
<logger message="#[payload]" level="INFO" />
</flow>
先感謝您
您今天看到的日志之所以出現是因為您的類中沒有toString
實現,因此使用了默認的Object#toString
。 如果只是關於日志記錄,您可以嘗試添加它。 如果你真的想記錄一個 JSON 那么你可以這樣做:
<logger message="#[output application/json --- payload]" level="INFO" />
如果您還想將該 JSON 作為響應返回,那么您需要使用轉換組件在記錄和響應之前將您的有效負載轉換為 JSON:
<ee:transform >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]>
</ee:set-payload>
</ee:message>
</ee:transform>
請注意,您可能需要構建更復雜的轉換,具體取決於您的 Java 對象究竟是什么樣子以及您想要在 JSON 中的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.