解读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


猜你喜欢
- 用c#中创建一个windows服务非常简单,与windows服务相关的类都在System.ServiceProcess命名空间下。每个服务都
- 这里简单介绍一下ZXing库。ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。
- 本文实例为大家分享了unity鼠标或者手指点击模型播放动的具体代码,供大家参考,具体内容如下using UnityEngine;using
- 一、注解的概念1、注解官方解释注解叫元数据,一种代码级别的说明,它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举在同一个层次,它可
- 本文实例为大家分享了C#窗体实现酒店管理系统的具体代码,供大家参考,具体内容如下一、概述酒店管理系统是我们常说的MIS (Managemen
- 今天用NewtonSoft.JSon解析一个天气数据,数据格式如:{"status":1,"detail&qu
- 前言现在的项目一般是拆分成一个个独立的模块,当在其他项目中想要使用独立出来的这些模块,只需要在其pom.xml使用<dependenc
- 一:模式说明模式定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求
- 百度是个好东西,这篇调用了百度的接口(当然大牛也可以自己写),人脸检测技术,所以使用的前提是有网的情况下。当然大家也可以去参考百度的文档。话
- 前几天用phonegap编译GameBuilder+CanTK时,发现HTML里的viewport无效。CanTK根据devicePixel
- SpringBoot实战电商项目mall(30k+star)地址:https://github.com/macrozheng/mall摘要权
- AsyncTask不仅方便我们在子线程中对UI进行更新操作,还可以借助其本身的线程池来实现多线程任务。下面是一个使用AsyncTask来实现
- 本文实例为大家分享了C#生成唯一订单号的具体代码,供大家参考,具体内容如下根据GUID+DateTime.Now.Ticks生产唯一订单号/
- 第一种方法:string s=abcdeabcdeabcde;string[] sArray=s.Split(c) ;foreach(str
- Spring实例Bean的方法Spring实例Bean的方法,在AbstractAutowireCapableBeanFactory中的pr
- 1.使用API设置主题如下所示,在Activity中使用setThemesetTheme(R.style.MyTheme1);2.调用API
- Hook是一种思想,也就是将原来的事件,替换到我们自己的事件,方便我们做一些切入处理。目的是不修改原来的代码,同时也避免遗漏的N多类里面处理
- 本文实例为大家分享了Android实现页面滑动切换动画的具体代码,供大家参考,具体内容如下实现两个页面滑动切换,一些相册的效果也是如此一个A
- 本文实例为大家分享了java多线程实现交通灯管理系统的具体代码,供大家参考,具体内容如下一. 项目要求模拟实现十字路口的交通灯管理系统逻辑。
- 错误示例,同一个类中使用异步方法:package com.xqnode.learning.controller;import com.fas