如何将 LinkedHashMap 负载转换为 mule 中的对象负载?

How to transform a LinkedHashMap Payload to Object Payload in mule?

我想在 mule 中将 LinkedHashMap 有效载荷转换为 Object 有效载荷,我使用了字节数组到对象转换器,但它对我不起作用,有想法吗?

您可以使用 dataweave 将通用类型 (=java.util.Map) 的有效负载转换为特定类型(示例中的 foo.bar.Type):

%dw 1.0
%output application/java
---
payload as :object {
    class: "foo.bar.Type"
}

您可以使用 dataweave 或 json 对象转换器。

您似乎特别提到了对象类型。 LinkedHashMap 已经是 Object 的实例:每个 Java 个实例继承自根 class Object.

如果您想将 HashMap 转换为特定对象,例如 JSON 或自定义对象,例如 com.mycompany.CompData,根据您的用例,您有几种可能性:

  • 使用其他答案中提到的 DataWeave(需要 EE)
  • 使用内置转换器,例如 Object-to-JSON
  • 通过扩展 AbstractTransformer 实现您自己的 Transformer

有关详细信息,请参阅文档:https://docs.mulesoft.com/mule-user-guide/v/3.8/using-transformers

如果您可以更具体地说明您的用例是什么,我会很乐意完善我的答案;)