解讀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)?"紅色":"藍(lán)色").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)文章
深入理解 CAS 算法原理已經(jīng)在jdk中的運(yùn)用
這篇文章主要介紹了深入理解 CAS 算法原理已經(jīng)在jdk中的運(yùn)用,幫助大家更好的使用Java,感興趣的朋友可以了解下2020-12-12
springboot如何接收get和post請求參數(shù)
這篇文章主要介紹了springboot如何接收get和post請求參數(shù),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06
詳解在spring中使用JdbcTemplate操作數(shù)據(jù)庫的幾種方式
這篇文章主要介紹了詳解在spring中使用JdbcTemplate操作數(shù)據(jù)庫的幾種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
Spring aop 如何通過獲取代理對象實現(xiàn)事務(wù)切換
這篇文章主要介紹了Spring aop 如何通過獲取代理對象實現(xiàn)事務(wù)切換的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07

