【问题标题】:Facing issue while data transformation in mule 3在 mule 3 中进行数据转换时面临的问题
【发布时间】:2020-10-06 10:16:08
【问题描述】:

我正在尝试使用转换消息组件将数据库的输出转换为 json。

这是输入载荷

[{
    "usd ": 0.0, 
    "goal": 3041920,
    "Inr": 0.0,
}]

transformer 内的数据编织 exp

%dw 1.0
%output application/json
---
payload map ((payload01 , indexOfPayload01) -> {
    "usd ": payload01.usd ,
    "goal": payload01.goal,
    "Inr": payload01.Inr,

}

我已经在转换消息中完成了映射,并且每当测试流程时我都会遇到异常

com.mulesoft.weave.mule.exception.WeaveExecutionException

谁能帮忙

谢谢, 尼基尔

【问题讨论】:

  • 您应该已经添加了错误和异常的详细信息。 WeaveExecutionException 本身仅表示存在错误。详细信息指出了错误所在。
  • 您需要关闭 ) 并在 usd 周围加上引号,因为键中有一个额外的空间。

标签: java mule dataweave


【解决方案1】:

您也不要引用 dataweave 模板中的键。在此处查看示例 https://docs.mulesoft.com/mule-runtime/3.9/dataweave-language-introduction

%dw 1.0
%output application/json
---
payload map ((payload01 , indexOfPayload01) -> 
  { 
    usd: payload01.'usd ', 
    goal: payload01.goal, 
    Inr: payload01.Inr
  })

【讨论】:

    【解决方案2】:

    输入 JSON 和脚本有一些错误。首先,必须删除每个属性中的最后一个逗号。要访问“usd”键,您需要在键名中使用引号。无论如何,在密钥中包含引号是很奇怪的。

    更正的脚本:

    %dw 1.0
    %output application/json
    ---
    payload map ((payload01 , indexOfPayload01) -> 
      { 
        "usd": payload01.'usd ', 
        "goal": payload01.goal, 
        "Inr": payload01.Inr
      })
    

    正确的输入:

    [{ "usd ": 0.0, "goal": 3041920, "Inr": 0.0 }]
    

    输出:

    [
      {
        "usd": 0.0,
        "goal": 3041920,
        "Inr": 0.0
      }
    ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-16
      • 1970-01-01
      • 2022-01-04
      • 2022-09-29
      • 2021-12-21
      相关资源
      最近更新 更多