【发布时间】:2020-05-11 21:34:06
【问题描述】:
如果城市具有相同的数组值,则以下 Json 需要按城市分组以获取数组和计数。之后我想对最大的 2 个进行排序,然后将其余的加在一起,但是该怎么做呢?
{
"data": [
{
"ID": 47,
"city": "Jakarta"
},
{
"ID": 48,
"city": "Bogor"
},
{
"ID": 49,
"city": "Bogor"
},
{
"ID": 50,
"city": "Jakarta"
},
{
"ID": 51,
"city": "Jakarta"
},
{
"ID": 52,
"city": "Bali"
},
{
"ID": 50,
"city": "Lampung"
}
]
}
到目前为止我已经尝试过按城市分组来获取数组
try {
JSONObject jsonObject = new JSONObject(result);
HashMap<String,Integer> hashMap = new HashMap<>();
for (int i=0;i<jsonObject.getJSONArray("data").length();i++){
JSONObject innerJsonObject = jsonObject.getJSONArray("data").getJSONObject(i);
String key = innerJsonObject.getString("city");
if(hashMap.containsKey(key)){
int count = hashMap.get(key)+1;
hashMap.put(key,count);
}else {
hashMap.put(key,1);
}
}
Log.e("Hashmap---",hashMap.toString());
} catch (JSONException e) {
e.printStackTrace();
}
结果是:
- 茂物 = 2
- 雅加达 = 3
- 巴厘岛 = 1
- 楠榜 = 1
预期结果是:
雅加达 = 3
茂物 = 2
另一个城市 = 2
【问题讨论】:
标签: java android arrays json sorting