【问题标题】:Mule Transform Set Dynamic Key From PayloadMule 变换从 Payload 设置动态密钥
【发布时间】:2016-06-21 08:40:30
【问题描述】:

我想从我的有效负载中的 2 个不同字段设置一个键值字典。我的第一个想法是使用transform组件并动态设置key,但是这段代码不起作用:

%dw 1.0
%output application/java
---
{
    payload.objectnumber: payload.objectid
}

我收到此错误:

Multiple markers at this line
- Invalid input "payload.", expected conditionalKeyValuePair,
   keyValuePair, enclosedExpr or objectEnd
- no viable alternative at input 'payload'
- no viable alternative at input '.'

关于如何让它工作的任何想法?

输入:

[{
  objectnumber: 75,
  objectid: "abcdefgh"
}]

预期输出:

[{
  "abcdefgh": 75
}]

【问题讨论】:

  • 发布您的输入负载和预期输出?
  • 是的,我会将它添加到问题中,但这很简单

标签: mule anypoint-studio dataweave


【解决方案1】:

在括号(value) 内放一个变量来定义一个动态键。因此,您可以尝试以下代码:

%dw 1.0
%output application/json
---
payload map {
    ($.objectid): $.objectnumber
}

【讨论】:

    【解决方案2】:

    试试下面的代码

        <dw:transform-message metadata:id="b968b3ec-ed0a-492d-bf32-bcfe0d20e9d0" doc:name="Transform Message">
            <dw:set-payload><![CDATA[%dw 1.0
           %output application/java
           %var objectId = payload.objectid
           ---
            objectId :payload.objectnumber
            ]]></dw:set-payload>
        </dw:transform-message>
    

    Postman 中的 JSON 输入:

     [  
       {  
      "objectnumber":75,
      "objectid":"abcdefgh"
       }
     ]
    

    【讨论】:

      猜你喜欢
      • 2015-09-29
      • 2020-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-01
      • 1970-01-01
      • 2010-11-01
      相关资源
      最近更新 更多