前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

[ {"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 中重复的部分)相关推荐

  1. JS删除数组中指定元素/删除数组中指定对象

    删除数组中指定对象指定元素 let arr = [{name: "xiaowang",id: 1 },, {name: "xiaozhang",id: 2 }, ...

  2. java——定义一个功能将ArrayList 集合中的重复元素删除(java集合七)

    定义一个功能将ArrayList 集合中的重复元素删除 ArrayList 集合中是允许储存重复元素的 import java.util.ArrayList; import java.util.Ite ...

  3. 汇编中的length(返回利用dup定义的数组中的元素个数,即重复操作符dup前的count值)

    LENGTH是属于析值操作符之一,也称为数值回送操作符,原因是这些操作符把一些特征或存储器地址的一部分作为数据返回.length的用法:length 变量名 .作用是返回利用dup定义的数组中的元素个 ...

  4. python for 循环中使用 remove 删除列表中的元素

    python for 循环中使用 remove 删除列表中的元素 错误的代码 # !/usr/bin/python # encoding: utf-8 # -*- coding: utf8 -*- o ...

  5. 网元——就是网络中的元素,网络中的设备。总之,网元是网络管理中可以监视和管理的最小单位...

    网元     摘要: 网元由一个或多个机盘或机框组成, 能够独立完成一定的传输功能. 网管系统中的网元其实和这个差不多,简单理解就是网络中的元素,网络中的设备.总之,网元是网络管理中可以监视和管理的最 ...

  6. vue中如何在方法中动态的删除集合中的元素!?

    参考https://blog.csdn.net/weixin_42230550/article/details/87990486 vue中,如何在方法中动态的删除集合中的元素? me.btn_elem ...

  7. c++删除数组中重复元素_leetcode 数组中重复的数字

    找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组中任意一个重 ...

  8. python list去重并删除某些元素_使用Python实现list(列表)中的重复元素删除,例如: X= [1,1,2,a,a,[1,2,3]] 去重后:X= 「1,2,a,[1,2...

    题目要求的实质是列表内部元素的去重,有两种思路:第一种,删除的思路,判断列表中的元素是否出现重复,如果有重复,删除重复出现的元素直到剩下最后一个:第二种,添加的思路,新建空列表,将新列表中不包含.原列 ...

  9. jq 数组不重复_jquery删除数组中重复元素

    话不多说,下面就跟着小编来看下利用jquery实现删除数组中重复元素的具体思路吧 首先定义如下数组: var arr=[0,2,3,5,6,9,2]; 我们可以看到数组中存在重复元素'2'; 最后通过 ...

  10. foreach去除重复元素java_Java foreach 中List移除元素抛出ConcurrentModificationException原因全解析...

    本文重点探讨 foreach 循环中List 移除元素造成 java.util.ConcurrentModificationException 异常的原因. 先看<阿里巴巴 Java开发手册&g ...

最新文章

  1. 新款华为手机,免费带回家
  2. 美多商城之订单(结算订单)
  3. Docker学习(3)——安装部署过程及简单应用
  4. vscode 注释_VSCode最强助攻
  5. 网易云首届渠道大会:多媒体通信助力互联网+
  6. Boost::context模块callcc的回声测试程序
  7. 【黑金视频连载】FPGA NIOSII视频教程(11)--系统时钟实验
  8. 太阳能计算机作文500字,自制太阳能热水器
  9. mongodb查询分页优化
  10. 一图看懂边缘计算整体架构
  11. 读书随笔:The Book of Why——CHAPTER 1:The Ladder of Causation
  12. sql 获取当前整点时间,当前时间减去12小时
  13. GAD游戏学院系列丛书发布,引爆峰会现场
  14. 使用VS开发基于Oracle程序的严重问题
  15. Java、Java Web面试题(来源于MLDN、北方网)
  16. 什么是操作系统啊 | 战术后仰
  17. HDOJ 5143 NPY and arithmetic progression DFS
  18. OpenJudge百炼-1183-反正切函数的应用-C语言-简单计算
  19. Angular4的双向数据绑定
  20. 如何用java POI在excel中画线_java poi对excel的操作详解

热门文章

  1. Move_base理解
  2. 【Python CheckiO 题解】Bird Language
  3. hypixel服务器免费低延迟ip,国服hypixel服务器ip
  4. android实现电话功能实验报告,安卓开发实验报告-20210407005833.docx-原创力文档
  5. xml控制html样式,XML与CSS综合设置实例
  6. 子窗体中组合框联动_一张表实现组合框联动
  7. Linux学习:第四章-vi编辑器
  8. 硬件结构图_那曲地表水电子除垢仪结构图
  9. leetcode242. 有效的字母异位词
  10. Tensorflow(0)--Tensorboard