2017-12-28 9 views
0

groovy를 처음 사용했으며 아래의 배열 목록 내부의 맵 값을 합산하려고합니다.groovy를 사용하여 JSON에 그룹화 및 합계

def list = [[field:A, amount:1000], [field:A, amount:2000], [field:B, amount:3000], [field:C, amount:4000]] 

예상 출력 : 어떤 도움이 많이 감사합니다

list[ 
    { 
    "field": "A", 
    "amount": 3000 //Sum of items 1 & 2 in above list. 
    }, 
    { 
    "field": "B", 
    "amount": 3000 
    }, 
    { 
    "field": "C", 
    "amount": 4000 
    } 
] 

. 이 비록

+3

가능한 중복 (https : //로 유래. co.kr/questions/34404373/how-do-you-use-group-in-groovy) – Barney

+0

작업 솔루션은 https://groovyconsole.appspot.com/script/5153513944383488 –

답변

0

는 일반적인 해결책이 아니다, 그러나이 같은 시도 할 수 있습니다 : [? 어떻게 그루비 함께 GROUPBY과 합계를 사용하여 사용합니까]의

groovy.json.JsonOutput.toJson(list.groupBy{it.field}.collect{['field':it.key, 'amount':it.value.sum{it.amount}]}) 
+0

에 대한 실제 데모가 있습니다. 위의 답변은 https://groovyconsole.appspot.com/script/5153513944383488입니다. –