[英]How to convert java object to JSON after java:invoke in mule 4
I am working with mule 4. I am invoking a java method and it returns a java object as payload.我正在使用 mule 4。我正在调用一个 java 方法,它返回一个 java 对象作为有效负载。 If a try to print the payload, I get something like
com.myproject.services.DataInjectorManager$MyClass@7606ba6e
.如果尝试打印有效负载,我会得到类似
com.myproject.services.DataInjectorManager$MyClass@7606ba6e
。 How Could I transform this to JSON?我如何将其转换为 JSON? My mule flow is:
我的骡子流是:
<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>
Thank you in advance先感谢您
The log you are seeing today occurs because you don't have a toString
implementation in your class so the default Object#toString
is used.您今天看到的日志之所以出现是因为您的类中没有
toString
实现,因此使用了默认的Object#toString
。 You could try adding that if it's just about logging.如果只是关于日志记录,您可以尝试添加它。 If you really want to log a JSON then you could do:
如果你真的想记录一个 JSON 那么你可以这样做:
<logger message="#[output application/json --- payload]" level="INFO" />
If you also want to return that JSON as a responseo, then you need to use a transform component to turn your payload into a JSON before logging and responding:如果您还想将该 JSON 作为响应返回,那么您需要使用转换组件在记录和响应之前将您的有效负载转换为 JSON:
<ee:transform >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]>
</ee:set-payload>
</ee:message>
</ee:transform>
Note that you might have to build a more complex transformation depending on what exactly your Java object looks like and what you want in your JSON.请注意,您可能需要构建更复杂的转换,具体取决于您的 Java 对象究竟是什么样子以及您想要在 JSON 中的内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.