问题描述
我正在尝试在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
]
}