【问题标题】:Nested array data transformation with Mule 3使用 Mule 3 进行嵌套数组数据转换
【发布时间】:2022-02-13 09:31:04
【问题描述】:

我正在尝试在 Mule 3 (DataWeave 1.0) 中转换数据,但没有得到想要的结果。

这是输入负载:

[
  "https://scrum-caller.com/repo/v1/inside#Changes",
  [
    {
      "id": "8db55441-6255-4d24-8d39-658536985214",
      "number": "0w-30",
      "Desc": "maintain"
    }
  ],
  "https://scrum-caller.com/repo/v1/inside#Changes",
  [
    {
      "id": "11111111-6666-2222-3g3g-854712547412",
      "number": "5w-40",
      "Desc": "on prod"
    }
  ],
  "https://scrum-caller.com/repo/v1/inside#Changes",
  [
    {
      "id": "1ab32c5b-ffs3-3243-74fv-3376218042bb",
      "number": "5w-30",
      "Desc": "on test"
    }
  ]
]

我的愿望输出需要像下面的那样

{
    "@odata.context": "https://scrum-caller.com/repo/v1/inside#Changes",
    "value": [
        {
      "id": "8db55441-6255-4d24-8d39-658536985214",
      "number": "0w-30",
      "Desc": "maintain"
    },
    {
      "id": "11111111-6666-2222-3g3g-854712547412",
      "number": "5w-40",
      "Desc": "on prod"
    },
    {
      "id": "1ab32c5b-ffs3-3243-74fv-3376218042bb",
      "number": "5w-30",
      "Desc": "on test"
    }
    ]
}

感谢大家的帮助。

【问题讨论】:

  • 输出不是有效的 JSON。 url 应该是键或值。
  • @aled 很抱歉我确实忘记添加密钥了

标签: mule dataweave mulesoft mule-esb


【解决方案1】:

假设所有的 URL 都相同,由于问题不提供详细信息,仅作为示例,我只是将第一个元素作为“@odata.context”的输入值,该值只是过滤掉非数组元素并使用 reduce 运算符获取其他元素的单个数组。

%dw 1.0
%output application/json
---
{
  "@odata.context" : payload[0],
  value : payload filter ($ is :array) reduce ($ ++ $$)
}

【讨论】:

  • 不知道怎么感谢,我现在试试
猜你喜欢
  • 2020-10-06
  • 2020-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-15
  • 2021-09-26
  • 2018-12-20
相关资源
最近更新 更多