解讀JSONArray刪除元素的兩種方式
更新時(shí)間:2022年12月22日 15:09:38 作者:紅桃∩
這篇文章主要介紹了解讀JSONArray刪除元素的兩種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
JSONArray刪除元素的兩種方式
我自個(gè)磨出來的,難受
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); //不要用這種方式刪除,會(huì)報(bào)出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)?"紅色":"藍(lán)色").equals(((JSONObject) iter).get("ticket_status_name"))).collect(Collectors.toCollection(JSONArray::new)); } if(!CollectionUtils.isEmpty(finalArray)) { o.remove(); //移除 } } return jarr; }
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于jdk環(huán)境變量配置以及javac不是內(nèi)部或外部命令的解決
這篇文章主要介紹了關(guān)于jdk環(huán)境變量配置以及javac不是內(nèi)部或外部命令的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01Java調(diào)用wsdl接口的兩種方法(axis和wsimport)
本文主要介紹了Java調(diào)用wsdl接口的兩種方法(axis和wsimport),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03面向?qū)ο缶幊?Java中的抽象數(shù)據(jù)類型
面向?qū)ο缶幊?Java中的抽象數(shù)據(jù)類型...2006-12-12Spring Boot 整合 Shiro+Thymeleaf過程解析
這篇文章主要介紹了Spring Boot 整合 Shiro+Thymeleaf過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10