解读JSONArray删除元素的两种方式
作者:红桃∩ 发布时间:2022-10-31 11:40:50
标签:JSONArray,删除,元素
JSONArray删除元素的两种方式
我自个磨出来的,难受
JSONArray jsonarray = new JSONArray();
Set<Object> jsonObjects = new HashSet<>();
for (Object obj : jsonarray) {
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(obj));
if (jsonObject.containsKey("key")) {
jsonObjects.add(jsonObject);
}
}
jsonarray.removeAll(jsonObjects);
来自于FeelTouch,厉害
JSONObject o1 = new JSONObject();
o1.put("key", 324);
JSONObject o2 = new JSONObject();
o2.put("key", 325);
JSONObject o3 = new JSONObject();
o3.put("key", 325);
JSONObject o4 = new JSONObject();
o4.put("key", 327);
JSONArray ja = new JSONArray();
ja.add(o1);
ja.add(o2);
ja.add(o3);
ja.add(o4);
Iterator<Object> o = ja.iterator();
while (o.hasNext()) {
JSONObject jo = (JSONObject) o.next();
if(jo.getIntValue("key") == 325) {
//ja.remove(jo); //不要用这种方式删除,会报出ConcurrentModificationException
o.remove(); //这种方式OK的
}
}
System.out.println(ja);
移除JSONArray中匹配的元素
/**
* 移除JSONArray中匹配的元素
* helper.isBookOrChange获取类中isBookOrChange值
* @param jarr
* @return
* @author taiyang
*/
public JSONArray getOrderFilter(JSONArray jarr){
Iterator<Object> o = jarr.iterator();
while (o.hasNext()) {
JSONObject jo = (JSONObject) o.next();
JSONArray finalArray = null;
if(!CollectionUtils.isEmpty(jo.getJSONArray("myTicketList"))){
JSONArray myTicketListArray=jo.getJSONArray("myTicketList");
//判断是否是红色
finalArray=myTicketListArray.stream().filter(iter -> (BookOrChangeEnum.CHANGE_TICKET.getCode().equals(helper.isBookOrChange)?"红色":"蓝色").equals(((JSONObject) iter).get("ticket_status_name"))).collect(Collectors.toCollection(JSONArray::new));
}
if(!CollectionUtils.isEmpty(finalArray)) {
o.remove(); //移除
}
}
return jarr;
}
来源:https://blog.csdn.net/weixin_40375601/article/details/103354021
0
投稿
猜你喜欢
- idea中ssm框架的编码问题介绍在idea中编码问题分为几个部分:1 tomcat服务器编码2 页面编码3 控制台编码4 操作系统编码在实
- 重复参数 Scala在定义函数时允许指定最后一个参数可以重复(变长参数),从而允许函数调用者使用变长参数列表来调用该函数,Scala中使用“
- 一、前言首选,双轴快排也是一种快排的优化方案,在JDK的Arrays.sort()中被主要使用。所以,掌握快排已经不能够满足我们的需求,我们
- 一、前言null与NULL不都是表示空值吗?这有什么值得深入讨论的的?首先你在编写Java代码时使用过NULL吗?大概用IDE用习惯了,自动
- 一、@Value读取application.properties配置文件中的值application.properties配置文件fileN
- 前言一个说难不难,说简单竟看不出来是哪里问题的一个bug。是的 可能自己能力和经验尚浅无法识别,下面你们能否用火眼金睛一眼让bug原形毕露(
- 前言相信小伙伴一定用过 @Transaction 注解,那 @Transaction 背后的秘密又知道多少呢?Spring 是如何开启事务的
- 1 本地调试介绍本地调试: 这里是指在开发环境中,部署了一整套的某个项目或者产品的服务,开发人员开发时,本地会起一个或多个服务,这些服务和开
- 本文介绍了JAVA中实现原生的 socket 通信机制原理,分享给大家,具体如下:当前环境jdk == 1.8知识点socket 的连接处理
- 多表联合查询resultType的返回值一般数据按参数类型返回<select id="queryCarIdList"
- 下表总结了Java NIO和IO之间的主要差别,我会更详细地描述表中每部分的差异。IO &nb
- 前言多数据源的事务处理是个老生常谈的话题,跨两个数据源的事务管理也算是分布式事务的范畴,在同一个JVM里处理多数据源的事务,比较经典的处理方
- 前言兄弟们,刚刚又给seata社区修了一个BUG,有用户提了issue反应TransactionHook在某些情况下不会被调用:相关issu
- 一、常用功能java.utils.Collections是集合工具类,用来对集合进行操作。部分方法如下:public static <
- 一、Socket是什么Socket 的中文翻译过来就是“套接字”。套接字是什么,我们先来看看它的英文含义:插座。Socket 就像一个电话插
- CLR提供了可以区分类型的Equality 和Identity能力。Equality:如果两个对象是相同的类型,并且它们各自带有相同和等值的
- 本文实例为大家分享了java根据网络地址保存图片的具体代码,供大家参考,具体内容如下import java.io.BufferedInput
- 本文实例为大家分享了javaweb登录验证码的具体代码,供大家参考,具体内容如下使用:Controller:生成验证码@RequestMap
- 前言在前后端分离开发的时候我们需要用到参数校验,前端需要进行参数校验,后端接口同样的也需要,以防传入不合法的数据。1、首先还是先导包,导入p
- 我已经很精简了,两篇(Spring Boot启动过程(一)、spring Boot启动过程(二))依然没写完,接着来。refreshCont