2017-12-28 20 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://でのstackoverflow。 com/questions/34404373/how-do-you-use-group-in-groovy) – Barney

+0

解決方法はこちらhttps://groovyconsole.appspot.com/script/5153513944383488 –

答えて

0

これは、一般的なソリューションではありませんが、あなたはこのような何か試すことができますが:[?あなたはどのようにGroovyで一緒に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です –

関連する問題