Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
518 views
in Technique[技术] by (71.8m points)

mule4 - how to transform children items in dataweave

I have below input

{
  "error1": [
    {
      "store": "1201",
      "DocumentNumber": "FF15974433790786634518"
    },
    {
      "store": "1201",
      "DocumentNumber": "FF15974433790786634519"
    },
    {
      "store": "1201",
      "DocumentNumber": "FF15974433790786634520"
    },
    {
      "store": "1202",
      "DocumentNumber": "FF15974433790786634520"
    }
  ],
  "error2": [
    {
      "store": "1201",
      "DocumentNumber": "FF15974433790786634518"
    }],
  error3:[]
}

i want to export following result

{
    "error1": [{
            "store": "1201",
            "DocumentNumber": ["FF15974433790786634518", "FF15974433790786634519", "FF15974433790786634520"]
        },
        {
            "store": "1202",
            "DocumentNumber": ["FF15974433790786634520"]
        }
    ],
    "error2": [{
        "store": "1201",
        "DocumentNumber": ["FF15974433790786634518"]
    }]
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Try the below script

%dw 2.0
output application/json
---
(payload filterObject ($ != [])) mapObject ((value, key, index) -> {
    (key): (value groupBy $.store) pluck ((iValue, iKey) -> {
        store: (iKey),
        DocumentNumber: iValue.DocumentNumber
    })
})

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...