格式 JSON 多个数组的负载

Format JSON Payload for Multiple Arrays

我需要以某种方式格式化传入的负载 JSON。下面给出了示例负载 JSON。

[
  {
    "value": {
      "States": [
        {
          "Name": "New South Wales",
          "Code": "NSW"
        }
      ]
    }
  },
  {
    "value": {
      "States": [
        {
          "Name": "Western Australia",
          "Code": "WA"
        }
      ]
    }
  }
]

我试图获得的输出如下:

[
  {
    "SystemCode": "STATE",
    "Name": "StateName",
    "Code": "NSW"
  },
  {
    "SystemCode": "STATE",
    "Name": "StateName",
    "Code": "WA"
  }
]

正如您在上面看到的,在输出中,SystemCodeName 将保持不变,而 Code 值将根据传入的有效负载更改。生成所需的输出后,我需要将与 JSON 相同的内容存储在会话变量中。我怎样才能在 Mule dataweave 1.0 中实现这一点 请注意,我可以接收多个数组作为具有不同代码的有效负载。 提前致谢。

试试这个:

%dw 1.0
%output application/json

%var codes = payload..Code

%var baseObj = {
    "SystemCode" : "STATE",
    "Name"       : "StateName"
}
---
codes map (baseObj ++ {"Code": $})

将其设置为会话变量:

<dw:transform-message>
  <dw:set-session-variable variableName="sessionVarName">
    <![CDATA[
      <YOUR CODE HERE>
    ]]>
  </dw:set-session-variable>
</dw:transform-message>

试试这个:

%dw 1.0
%output application/json
---
payload.value.States map 
{
    "SystemCode": "STATE",
    "Name": "StateName",
    "Code": $.Code[0]
}