JSONArray遍历删除 java
复杂的JSONArray遍历思路

​ 总结就4个字:先删后加

​ 删除时需要注意index,根据特定的目标对象删除后,需要将删除过对象后的数组保存下来,组装可以覆盖原来位置的对象然后添加进JSONArray

for example:

public class Test {public static void main(String[] args) {JSONArray deviceList =new JSONArray();Map m1 =new HashMap();m1.put("BOM","20001");List partList = new ArrayList();Map mm1 =new HashMap();mm1.put("BOM", "QPR");mm1.put("QTY", "1");Map mm2 =new HashMap();mm2.put("BOM", "FYX");mm2.put("QTY", "1");partList.add(mm1);partList.add(mm2);m1.put("partList",partList);deviceList.add(m1);Map m2 =new HashMap();m2.put("BOM","20002");List partList1 = new ArrayList();Map mm3 =new HashMap();mm3.put("BOM", "QPR");mm3.put("QTY", "1");Map mm4 =new HashMap();mm4.put("BOM", "FYX");mm4.put("QTY", "1");partList1.add(mm3);partList1.add(mm4);m2.put("partList",partList1);deviceList.add(m2);
//        3Map m3 =new HashMap();m3.put("BOM","20002");List partList2 = new ArrayList();Map mm5 =new HashMap();mm5.put("BOM", "QPR");mm5.put("QTY", "1");Map mm6 =new HashMap();mm6.put("BOM", "FYX");mm6.put("QTY", "1");partList2.add(mm5);partList2.add(mm6);m3.put("partList",partList2);deviceList.add(m3);System.out.println(deviceList.toString());boolean isDel =false;for(int i =0; i<deviceList.size();i++) {String bom = (String) deviceList.getJSONObject(i).get("BOM");if (bom.equals("20002")) {JSONArray partArray = deviceList.getJSONObject(i).getJSONArray("partList");JSONObject all = deviceList.getJSONObject(i);Iterator iterator = partArray.iterator();while (iterator.hasNext()) {Map map = (Map) iterator.next();if (map.get("BOM").equals("QPR")) {isDel = true;iterator.remove();}}deviceList.remove(i);if (isDel) {i = i-1 ;isDel = false;}all.put("partList", partArray);deviceList.add(all);}}System.out.println(deviceList.toString());System.out.println("==================");System.out.println(deviceList);}
}
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.7</version></dependency>

JSONArray删除相关推荐

  1. extjs editgrid增加一行

    Ext.onReady(function(){ /* * EditorGridPanel的工作过程 * 1.用户点击单元格 * 2.单元格按照预设的组件显示单元格的内容并处于编辑状态 * 3.离开单元 ...

  2. Oracle所有错误类型

    ORA-00001: 违反唯一约束条件 (.)  ORA-00017: 请求会话以设置跟踪事件  ORA-00018: 超出最大会话数  ORA-00019: 超出最大会话许可数  ORA-00020 ...

  3. oracle常用errcode

    ORA-00001: 违反唯一约束条件 (.)     ORA-00017: 请求会话以设置跟踪事件      ORA-00018: 超出最大会话数      ORA-00019: 超出最大会话许可数 ...

  4. java清空json_java – 从JSONArray中删除JSON对象 – Jettison

    是否有通过使用索引删除存储在JSONArray中的JSONObject的直接方法.我尝试了所有的可能性.仍然无法从JSON数组中删除JSON对象.任何提示都会有所帮助 谢谢 解决方法: 在java-j ...

  5. Ajax之Jquery封装使用举例2(Json和JsonArray处理)

    本例主要使用ajax进行异步数据请求,并针对返回数据为json和jsonarray类型的数据处理. 本例中只有前端的代码,后端代码不是本文重点,故省略. 后端接口返回数据为: Json: {" ...

  6. Java pdf文件传输_java中pdf文件的管理(pdf文件转png文件,base64传输文件以及删除)...

    org.apache.pdfbox pdfbox 2.0.12 影像文件转为base64编码使用java自带的BASE64Encoder类 代码部分: 前端上传文件的保存: @RequestMappi ...

  7. 根据一个属性,剔除 Json 中重复元素(删除 JSON 中重复的部分)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. [ {"data" : {"code" : "04 ...

  8. 实现对easyui-datagrid的数据行批量修改(包括修改内容和删除)

    先上一个easyui-datagrid的数据. 而我们要实现的功能是1.对三条记录进行批量的删除和批量的修改状态. 1.批量的删除 我们选择传入三条记录的id值,并利用service层的deleteB ...

  9. android listview 左右滑动,Android ListView 左右滑动显示删除

    public class AddressAdapter extends BaseAdapter { Context context; JSONArray arry; Button btn; priva ...

最新文章

  1. OWA登录页面显示为英文而不是中文
  2. python requests text content_python request text 和 content的区别
  3. MMDetection库部署和训练
  4. MATLAB求音频信号特征的自定义函数.md
  5. 100 万在中国不同地方能活多久?
  6. Requests库基本使用
  7. 电商节直播研究报告—以618为例
  8. uni-app + vue-cli3 安装axios、vant等依赖 - 操作篇
  9. linux下nginx的基本使用
  10. 《掌握需求过程》阅读笔记三
  11. 设计模式(建造者模式)
  12. CF1399E1 Weights Division (easy version)
  13. 那些年我们常用的软件
  14. 【混音教程】开启你的混音生涯的6个心法|MZD Studios
  15. VUE常用插件库总结
  16. 存活1.5.0.4 游戏
  17. 7月22日自助装机配置专家点评
  18. 马云关于计算机的名人名言,马云名人名言
  19. 【Basis】狄利克雷分布
  20. sap系统中的batch_SAP 批次管理(Batch management)配置介绍

热门文章

  1. H3C企业级千兆无线路由器设置
  2. 系统分析师2022年真题答案概念二
  3. C语言中判断回文数用数组的方法,【C语言】回文数和回文字符串的判断
  4. Numpy数组中删除指定位置、指定行或指定列的数据:numpy.delete()
  5. 计算平均值python
  6. webpack es6转es5
  7. Android 总结:Manifest文件中,application和activity标签属性详解
  8. 前端模块化的十年征程
  9. 豪雅表奢侈手机Meridiist
  10. 怀旧服要多少人数服务器才显示高,魔兽怀旧服排队人数为何居高不下 五大因素是关键工作室只是其一...