JSONArray删除
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删除相关推荐
- extjs editgrid增加一行
Ext.onReady(function(){ /* * EditorGridPanel的工作过程 * 1.用户点击单元格 * 2.单元格按照预设的组件显示单元格的内容并处于编辑状态 * 3.离开单元 ...
- Oracle所有错误类型
ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020 ...
- oracle常用errcode
ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ...
- java清空json_java – 从JSONArray中删除JSON对象 – Jettison
是否有通过使用索引删除存储在JSONArray中的JSONObject的直接方法.我尝试了所有的可能性.仍然无法从JSON数组中删除JSON对象.任何提示都会有所帮助 谢谢 解决方法: 在java-j ...
- Ajax之Jquery封装使用举例2(Json和JsonArray处理)
本例主要使用ajax进行异步数据请求,并针对返回数据为json和jsonarray类型的数据处理. 本例中只有前端的代码,后端代码不是本文重点,故省略. 后端接口返回数据为: Json: {" ...
- Java pdf文件传输_java中pdf文件的管理(pdf文件转png文件,base64传输文件以及删除)...
org.apache.pdfbox pdfbox 2.0.12 影像文件转为base64编码使用java自带的BASE64Encoder类 代码部分: 前端上传文件的保存: @RequestMappi ...
- 根据一个属性,剔除 Json 中重复元素(删除 JSON 中重复的部分)
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. [ {"data" : {"code" : "04 ...
- 实现对easyui-datagrid的数据行批量修改(包括修改内容和删除)
先上一个easyui-datagrid的数据. 而我们要实现的功能是1.对三条记录进行批量的删除和批量的修改状态. 1.批量的删除 我们选择传入三条记录的id值,并利用service层的deleteB ...
- android listview 左右滑动,Android ListView 左右滑动显示删除
public class AddressAdapter extends BaseAdapter { Context context; JSONArray arry; Button btn; priva ...
最新文章
- OWA登录页面显示为英文而不是中文
- python requests text content_python request text 和 content的区别
- MMDetection库部署和训练
- MATLAB求音频信号特征的自定义函数.md
- 100 万在中国不同地方能活多久?
- Requests库基本使用
- 电商节直播研究报告—以618为例
- uni-app + vue-cli3 安装axios、vant等依赖 - 操作篇
- linux下nginx的基本使用
- 《掌握需求过程》阅读笔记三
- 设计模式(建造者模式)
- CF1399E1 Weights Division (easy version)
- 那些年我们常用的软件
- 【混音教程】开启你的混音生涯的6个心法|MZD Studios
- VUE常用插件库总结
- 存活1.5.0.4 游戏
- 7月22日自助装机配置专家点评
- 马云关于计算机的名人名言,马云名人名言
- 【Basis】狄利克雷分布
- sap系统中的batch_SAP 批次管理(Batch management)配置介绍
热门文章
- H3C企业级千兆无线路由器设置
- 系统分析师2022年真题答案概念二
- C语言中判断回文数用数组的方法,【C语言】回文数和回文字符串的判断
- Numpy数组中删除指定位置、指定行或指定列的数据:numpy.delete()
- 计算平均值python
- webpack es6转es5
- Android 总结:Manifest文件中,application和activity标签属性详解
- 前端模块化的十年征程
- 豪雅表奢侈手机Meridiist
- 怀旧服要多少人数服务器才显示高,魔兽怀旧服排队人数为何居高不下 五大因素是关键工作室只是其一...