关于Map的遍历以及转JsonArray存储方式
更新时间:2024年11月04日 10:48:37 作者:疯狂咕噜咚
在Java开发过程中,经常会遇到需要对复杂数据结构进行处理的情况,本案例以List<Map<String,Object>>为例,介绍了如何遍历该数据结构,并根据特定条件筛选出符合要求的元素,通过自定义一个Edit类来模拟形成一个新的Map对象,实现了数据的有序存储
Map的遍历以及转JsonArray存储
案例目的将List<Map<String,Object>> 遍历,按条件取得map里面符合要求的元素
将其有序的放到自定义的一个Edit类中,模拟形成一个新的Map对象:
- Edit类:
public class Edit { private String key; private String value; public String getKey() { return key; } public void setKey(String key) { this.key = key; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } }
- 测试类:
public class Test { public List<Map<String,Object>> see() { Map<String, Object> map = new HashMap<>(); map.put("wkx", "666"); map.put("laq", "999"); map.put("key", "datetime"); map.put("value", "2000"); Map<String, Object> map2 = new HashMap<>(); map2.put("wkx2", "666"); map2.put("laq2", "999"); map2.put("key", "dateid"); map2.put("value", "1000"); List<Map<String, Object>> listmap = new LinkedList<>(); listmap.add(map); listmap.add(map2); return listmap; } public static void main(String[] args) { Test a = new Test(); List<Edit> edits=new LinkedList<>(); List<List<Edit>> mapplus =new LinkedList<>(); List list = a.see(); for (int i=0;i<list.size();i++){ Edit edit = new Edit(); Map<String, Object> map = (Map) list.get(i); for (Map.Entry entry : map.entrySet()) { if ("key".equals(entry.getKey())) { edit.setKey((String)entry.getValue()); } if ("value".equals(entry.getKey())) { edit.setValue((String) entry.getValue()); } } if (edit.getKey()!=null&&edit.getValue()!=null) { edits.add(edit); } } mapplus.add(edits); System.out.println(list.toString()); } }
将mapplus里面的内容全部存储到数据库中的一个字段中
public String list2string(List<List<Edit>> list){ //但我们得到一个全新的list<map>时,我们要把它里面所有的map(包括key和value都存到数据库中的一个字段中去) // 我们用到jsoAarray JSONArray jsonArray = new JSONArray(); //逐渐遍历之前取得的mapplus list.forEach(n->{ n.forEach(e -> { String key = e.getKey(); String value = e.getValue(); }); jsonArray.add(n); }); return JSONArray.toJSONString(jsonArray); } //测试 mapplus.add(edits); String ss = new SortByLetter().list2string(mapplus); System.out.println(ss);
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Tk.mybatis零sql语句实现动态sql查询的方法(4种)
有时候,查询数据需要根据条件使用动态查询,这时候需要使用动态sql,本文主要介绍了Tk.mybatis零sql语句实现动态sql查询的方法,感兴趣的可以了解一下2021-12-12Eclipse运行android项目报错Unable to build: the file dx.jar was not
今天小编就为大家分享一篇关于Eclipse运行android项目报错Unable to build: the file dx.jar was not loaded from the SDK folder的解决办法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧2018-12-12详解Java的call by value和call by reference
在本篇文章里小编给大家总结了关于Java的call by value和call by reference的相关用法和知识点内容,需要的朋友们学习下。2019-03-03浅谈如何在项目中使用Spring Cloud Alibaba Sentinel组件
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。本文主要介绍了使用Spring Cloud Alibaba Sentinel组件,感兴趣的可以了解一下2021-07-07
最新评论