Transform 中的变量输出类型

问题描述 投票:0回答:1

在下面的示例中,当我在 Transform 中创建变量时,我有时会使用 application/java 有时使用 application/json 。看来使用这个变量的目标系统并不关心 输出是 JSON 还是 Java。只有在少数情况下才重要。 我的直觉是 Mule 平台会自动将其转换为正确的类型,即使你设置错误。

我的问题是: 在什么情况下应该使用输出 application/java 或输出 application/json?有可遵循的一般规则吗?

任何建议或想法都非常欢迎!

%dw 2.0
output application/java

---
{
    companyCode: attributes.queryParams.companyCode,
  ((updSince: attributes.queryParams.updSince)) if(!isEmpty(attributes.queryParams.updSince)),
  ((updBefore: attributes.queryParams.updBefore)) if(!isEmpty(attributes.queryParams.updBefore)),
  ((updDate: attributes.queryParams.updDate)) if(!isEmpty(attributes.queryParams.updDate)),
    limit:  attributes.queryParams.limit as Number default 200,
    page:  attributes.queryParams.page as Number   default 1
}
dataweave mulesoft
1个回答
0
投票

这个问题没有提供有关您如何使用该输出的详细信息,因此我只能提供一般建议。

一般来说,如果您使用转换的输出在 Mule 应用程序内执行进一步的转换或处理,最好输出到 Java (

application/java
)。这是因为 Java 是 Mule 中的“本地”表示。它不需要像任何其他格式一样进行解析/格式化处理。在格式之间进行转换可能会耗费大量资源(例如 CPU 和内存),因此只有在真正需要时才应该进行转换。否则,当应用程序处于负载状态时,您可能会发现问题。

另一方面,如果您在应用程序外部发送该值(例如使用 HTTP 连接器),并且它应该以 JSON 形式接收,那么可以输出为 JSON、XML 或接收方期望的任何格式。请注意,连接器可能能够在输入格式和预期格式之间自动转换值,但如果您想确保可以显式进行转换。

© www.soinside.com 2019 - 2024. All rights reserved.