Dataweave从groupBy之后的值中删除json元素ule子3.9

问题描述

我正在尝试在dataweave中基于groupBy转换xml,但是我还需要从输出删除一些json属性

输入json:

[   {
    "m": {
      "a": "a","b": "b"
    },"tag1": "A","tag2": "v1","tag3": "v1"   },{
    "m": {
      "a": "a","tag2": "v2","tag3": "v2"   },"tag1": "C","tag2": "v3","tag3": "v3"   } ]

输出json

 **{
  "A": [
    {
      "tag2": "v1","tag3": "v1"
    },{
      "tag2": "v2","tag3": "v2"
    }
  ],"C": {
    "tag2": "v3","tag3": "v3"
  }
}**

我尝试了以下转换(Mule 3.9),但是无法删除json中的额外属性

payload groupBy (item) -> item.tag1

对此有任何建议,并可能解释如何实现。

解决方法

迭代对象的方法是使用mapObject,然后可以过滤对象以删除不需要的元素

{a: [1,2,3],b: [2,3]} mapObject ((value,key) -> 
    {
       (key): value filter ((value,index) -> value > 2)
    }
 )

这将输出

{
  "a": [
    3
  ],"b": [
    3
  ]
}