一步将ByteArray转换为java.lang.Object

时间:2016-11-17 20:08:01

标签: mule dataweave

enter image description here如果ByteArrayToObject返回String,那么它的目的是什么?

在我的流程中,我正在使用骡子请求者从文件中读取Json内容,在数据编织之前通过执行以下3个步骤转换为java.lang.Object   (1)ByteArrayToString   (2)ObjectToJSON   (3)JSONTOObject

我想使用ByteArrayToObject转换器将上述3个步骤合并为一个,但根据文档,ByteArrayToObject返回String

https://docs.mulesoft.com/mule-user-guide/v/3.6/using-transformers

有没有办法将3个步骤合并为1个步骤?

2 个答案:

答案 0 :(得分:3)

您无法将有效负载转换为 java.lang.Object ,因为它已经是 java.lang.Object 的实例。在Java中,所有对象都继承Object Class Object是类层次结构的根。每个类都有Object作为超类

如果您正在从文件中读取JSON内容并且想要将内容转换为某个类实例,例如 com.mycompany.Apple ,则可以直接使用JSONToObject Transformer,指定 returnClass 参数

<json:json-to-object-transformer returnClass="com.mycompany.Apple" doc:name="JSON to Apple"/>

您可能需要查看native Json support documentation

根据文档,ByteArrayToObject可以两种方式使用:

  • 如果字节数组是序列化的Java对象,则可以使用 returnClass 参数将其反序列化为此Object。
  • 如果它不是序列化的Object,那么它将被转换为String

答案 1 :(得分:1)

您只能使用一个Java组件来转换有效负载