java中从josn中取出相同key所对应的另一个key的集合

json:[{'id':1,'type':role},{'id':2,'type':role},{'id':1,'type':org},{'id':2,'type':or... json:[
{'id':1,'type':role},
{'id':2,'type':role},
{'id':1,'type':org},
{'id':2,'type':org}
]
要分别得到type=role的id集合 和type=org的id集合 存成map形式,怎么弄啊,跪求
展开
 我来答
Mexico卡卡
2017-11-21 · TA获得超过1万个赞
知道大有可为答主
回答量:1.3万
采纳率:98%
帮助的人:1884万
展开全部
public static void main(String[] args)
    {
        String string = "[{\"depid\":\"5\",\"score\":\"10\"},{\"depid\":\"4\",\"score\":\"40\"},{\"depid\":\"4\",\"score\":\"30\"},{\"depid\":\"5\",\"score\":\"30\"}]";
        JSONArray fromObject = JSONArray.fromObject(string);
        Map<String,Integer> map = new HashMap<String, Integer>();
        
        for (Object object : fromObject)
        {
            JSONObject jsonObject = (JSONObject) object;
            String depid = (String)jsonObject.get("depid");
            Integer score = Integer.valueOf((String)jsonObject.get("score"));
            if (map.containsKey(depid))
            {
                int integer = map.get(depid);
                map.put(depid, integer+score);
            }
            else
            {
                map.put(depid, score);
            }
        }
        Set<Entry<String, Integer>> entrySet = map.entrySet();
        JSONArray jsonArray = new JSONArray();
         
        for (Entry<String, Integer> entry : entrySet)
        {
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("depid",entry.getKey());
            jsonObject.put("score",String.valueOf(entry.getValue()));
            jsonArray.add(jsonObject);
        }
        System.out.println(jsonArray.toString());
    }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式