Mule Transform 从有效载荷中设置动态密钥

Mule Transform Set Dynamic Key From Payload

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

%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
}]

试试下面的代码

    <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>

JSON 在 Postman 中输入:

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

在方括号 (value) 中放置一个变量来定义动态键。因此,你可以试试这个代码:

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