日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

根据一个属性,剔除 Json 中重复元素(删除 JSON 中重复的部分)

發布時間:2023/12/18 javascript 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 根据一个属性,剔除 Json 中重复元素(删除 JSON 中重复的部分) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。?

[ {"data" : {"code" : "044","post" : "xxx領導", "email" : "swfdffg@qq.com","Gender" : "boy"},"id" : "D279B324324343242342342428","userId" : "AF1111111111111111C93", "status" : "GOOD" }, {"data" : {"code" : "043","post" : "員工", "email" : "jiangn@qq.com","Gender" : "girl"},"id" : "11914546565656757676D4D71D","userId" : "AF1111111111111111C93", "status" : "BAD" ... ... }]

?

如上有一個類似這樣 json :JsonContext,主要是描述多個 user 的相關信息。

業務:把 A 系統中的用戶信息同步到 B 系統中,當多條 user 信息的 userId 相同時視為同一個 user,同步時只取其中職位最高的那一條數據。

思路:在同步前就過濾掉同一個 user 職位低的數據信息。

方法:

JSONArray jsonArray = JSON.parseArray(JsonContext);// 剔除JsonContext中重復的用戶信息,只保留一個職位最高的userMap userMap = new HashMap();for (int i=0;i<jsonArray.size();i++) {Object user = jsonArray.getJSONObject(i);Map jsonMap = JSON.parseObject(String.valueOf(user));Object userId = jsonMap.get("userId");if (null != userMap.get(userId)) { // user已存在Map oldUser = JSON.parseObject(String.valueOf(userMap.get(userId))); // 已存在用戶Map oldDataMap = JSON.parseObject(String.valueOf(oldUser.get("data")));int oldLevel = getJobLevel(oldDataMap.get("post").toString());// 已存在用戶職位等級int level = getJobLevel(JSON.parseObject(String.valueOf(jsonMap.get("data"))).get("post").toString());// 當前用戶職位等級if(oldLevel <= level){ // 刪除數值大者(職位等級低),保留等級高的職位logger.info("\n-----------------------------------保留的是:"+userMap.get(userId));logger.info("\n-----------------------------------刪除的是:"+user);jsonArray.remove(user);i--;}else {logger.info("\n-----------------------------------刪除的是:"+userMap.get(userId));logger.info("\n-----------------------------------保留的是:"+user);jsonArray.remove(jsonArray.getJSONObject(Integer.parseInt(userMap.get(userId+"i").toString())));i--;}} else {userMap.put(userId, user);userMap.put(userId+"i", i);}}這

這樣循環后數據就沒有重復的了,可以直接解析并作后續操作了。

?

總結

以上是生活随笔為你收集整理的根据一个属性,剔除 Json 中重复元素(删除 JSON 中重复的部分)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。