根据一个属性,剔除 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);}}这

这样循环后数据就没有重复的了,可以直接解析并作后续操作了。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/449138.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

给生命一个助跑的过程(图)

在高原的上空&#xff0c;常常可以见到秃鹫在翱翔。 秃鹫又叫座山雕&#xff0c;也被人誉为“神鹰”&#xff0c;是高原上体格最大的猛禽。它们往往栖息在海拔2000-5000多米的高山原上&#xff0c;体重达到7-11公斤。秃鹫张开翅膀后&#xff0c;整个身体有2米多长&#xff0c;…

ELK 构建 MySQL 慢日志收集平台详解

ELK 介绍 ELK 最早是 Elasticsearch&#xff08;以下简称ES&#xff09;、Logstash、Kibana 三款开源软件的简称&#xff0c;三款软件后来被同一公司收购&#xff0c;并加入了Xpark、Beats等组件&#xff0c;改名为Elastic Stack&#xff0c;成为现在最流行的开源日志解决方案&…

数据类型转换规则C语言

一、数据类型 为什么对数据进行分类&#xff1a;节约存储空间&#xff0c;提高运行速度。整型&#xff1a;signedsigned char 1 -128~127signed short 2 -32678~32767signed int 4 正负20亿signed long 4/8 正负20亿/9…

Visual Studio 的码云扩展 V1.0.85 发布

开发四年只会写业务代码&#xff0c;分布式高并发都不会还做程序员&#xff1f; >>> Visual Studio 的码云扩展 V1.0.85 已发布&#xff1a; 针对扩展进行了SDK部分的重写修正克隆窗体和快捷方式的图标颜色随主题变化修正快捷方式 优化用户登录和token处理机制调整了…

用 FastJSON 将 JSON 字符串转换为 Map

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 本文是利用阿里巴巴封装的FastJSON来转换json字符串的。例子如下&#xff1a; import com.alibaba.fastjson.JSON; import com.aliba…

shark恒破解笔记4-API断点GetPrivateProfileStringA

这小节是通过断在GetPrivateProfileStringA&#xff0c;然后找到注册码的。 1.运行程序输入假码111111&#xff0c;提示重启。通过这判断这是一个重启来验证的&#xff0c;那么它是如何来验证的呢&#xff1f;观察程序目录下会发现有一个名为“config.ini"的文件 那么判断…

开关语句、循环语句、goto

复习&#xff1a; 1、数据类型&#xff1a;signed char 1 %hhd -128~127signed short 2 %hd -32768~32767signed int 4 %d 正负20亿signed long 4 %ldsigned long long 8 %lld 9天开头的19位数unsigned char …

成功男士的健康心理特征

自信&#xff1a;他们普遍都有很强的自信心&#xff0c;有时有咄咄逼人的感觉。 急迫感&#xff1a;他们通常很急地想见到事物的成果&#xff0c;因此会给别人带来许多的压力。他们信仰“时间就是金钱”&#xff0c;不喜欢也不会把宝贵的时间浪费在琐碎的无聊事情上。 脚踏实…

DBlink的创建与删除

创建方式一&#xff1a; create [public] database link link名称 connect to 对方数据库用户identified by 对方数据库用户密码 using 对方数据库ip:端口/服务名; 创建方式二&#xff1a; create [public] database link link名称 connect to 对方数据库用户identified by 对…

kong 启动报错 could not retrieve server_version: timeout

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 报错&#xff1a; nginx: [error] init_by_lua error: /usr/local/share/lua/5.1/kong/init.lua:169: [postgres error] could not ret…

2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(监听Wi-Fi和APP的数据)

1-STM32物联网开发WIFI(ESP8266)GPRS(Air202)系统方案安全篇(来看一下怎么样监听网络数据,监听电脑上位机软件的数据) 因为那个软件只能监听咱自己电脑上的数据,所以咱就用电脑开个热点,然后让Wi-Fi和APP连接咱电脑的热点,这样就能监听数据了 电脑开个热点 手机APP连接这个热点…

数组越界的后果

数组&#xff1a; 什么是数组&#xff1a;变量的组合&#xff0c;是一种批量定义变量的方式。 定义&#xff1a;类型 数组名[数量];int arr[5]; 使用&#xff1a;数组名[下标];下标&#xff1a;从零开始&#xff0c;范围&#xff1a;0~数量-1。 遍历&#xff1a;与for循环配合…

职场心理:12个建议或许能改变你的一生(图)

心理引言&#xff1a;如何更好实现自我的职业目标&#xff1f;听起来很简单&#xff0c;回答也很简短&#xff0c;就是你必须清楚你最终想要实现什么&#xff1f;只要你这样做&#xff0c;你就已经开始从看的见和看不见的两条路径来实现你的目标。职场是一种特殊的环境&#xf…

python—包

1.模块 可以增加代码的重复利用的方式 避免命名冲突 如何定义模块 模块就是一个普通文件&#xff0c;所以任何代码可以直接书写规范 函数&#xff08;单一的功能&#xff09;类&#xff08;相似功能的组合&#xff0c;或者类似业务模块&#xff09;测试代码 如何使用模块 模块…

Docker Installation : Docker 中安装并启动 Kong

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 Details about how to use Kong in Docker can be found on the DockerHub repository hosting the image: kong. We also have a Docke…

tomcat是否有必要配置环境变量(摘)

之前发表了一篇关于如何安装和配置Tomcat的文章&#xff0c;而最近在开发项目的时候总是报错。后来被公司的大神问了一句&#xff1a;是谁告诉你Tomcat是需要配置环境变量的&#xff1f; 作为新手的我瞬间整个人都不好了&#xff01;于是偷偷百度了一下&#xff0c;终于找到了关…

走迷宫+推箱子

两个小游戏的大致逻辑 走迷宫: 1、定义二维字符数组作为迷宫 2、定义变量记录老鼠的位置 3、获取游戏开始时间 3、进入循环 1、清理屏幕&#xff0c;使用system调用系统命令。 2、显示迷宫(遍历二维字符数组) 3、检查是否到达出口 获取游戏结束时间&#xff0c;计算出走出迷宫用…

Facebook开源ptr:在Python环境中并行运行单元测试

Facebook开源了一个名为Python Test Runner&#xff08;ptr&#xff09;的新项目&#xff0c;允许开发人员运行Python单元测试套件。ptr和现有测试运行器之间的主要区别在于ptr通过爬取存储库查找一定的Python项目&#xff0c;这些项目带有的单元测试在安装文件中已经定义过。 …

小窍门解决大问题(组图)

1.洗头时&#xff0c;在水中放少许盐&#xff0c;也可以预防脱发。 2.用醋洗头&#xff0c;可以令头发飘顺&#xff0c;容易打理而且兼有去头皮屑的功效。特别适合烫染后的头发。 3.刷牙时在牙膏上加上一点小苏打&#xff0c;刷三次后牙齿洁白如玉&#xff0c;牙锈自然脱落…

解决报错: Connecting to Kong on http ... Could not reach Kong on http://xxx.xxx.xxx.xxx:8001

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. Docker 中安装并启动好网关 kong 后&#xff0c;想要安装 kong 的图形化界面 kong-dashboard &#xff0c;运行命令&#xff1a; do…