다음 JSON이 있습니다.
[
{
"Country": "Norway",
"Dept": "2",
"Hours": "08,00"
},
{
"Country": "Norway",
"Dept": "2",
"Hours": "08,00"
},
{
"Country": "Sweden",
"Dept": "1",
"Hours": "08,00"
},
{
"Country": "Sweden",
"Dept": "2",
"Hours": "08,00"
}
]
groupBy
국가 및 부서 를 작성하고 (매개 변수를 더 추가하면) 다음과 같은 방법으로 총 근무 시간 수를 얻고 싶습니다.
[
{
"Country": "Norway",
"Dept": "2",
"Hours": "16,00"
},
{
"Country": "Sweden",
"Dept": "1",
"Hours": "08,00"
},
{
"Country": "Sweden",
"Dept": "2",
"Hours": "08,00"
}
]
GroupBY
그루비 에 여러 번 추가하는 것이 어떻게 가능 합니까? 일부를 추가해야하는 것을 collectEntries
알지만 방법을 잘 모르겠습니다.
나는 이것이 당신이 찾고있는 것이라고 생각하지만, 나는 내가지도에서 반복 <<
하고 새로운 목록을 사용하는 방법이 마음에 들지 않았습니다 .
추신; 귀하의 변수 Hours
는 문자열입니다. 저는 숫자로했습니다.
def map = objJson.groupBy({it.Country}, {it.Dept}).collectEntries { k, v ->
[k, v.collect{ [Hours: it.value.Hours.sum(), Dept: it.value.Dept[0], Country: it.value.Country[0]] }]
}
def list = []
map.each(){ k, v ->
v.each{
list << it
}
}
return new JsonBuilder(list).toPrettyString()
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다