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

