一、测试数据准备

List<Map<String, String>> result = new ArrayList();
Map<String, String> map = new HashMap<>();
map.put("san", "张三");
map.put("si", "李四");
map.put("wu", "王五");
map.put("wang", "老王");
map.put("lao", "老张");
result.add(map);

二、将list<Map<String, String>>的结构数据转换成json数组

JSONArray jsonArray = JSONArray.parseArray(JSONArray.toJSON(result).toString());
System.out.println(jsonArray);

结果如下:
-------------------------------------------------------------------------------------------------

--------------[{"san":"张三","wang":"老王","si":"李四","lao":"老张","wu":"王五"}]-------------------

-------------------------------------------------------------------------------------------------

三、获取json数组中对应key的值

// 1.首先对数据进行遍历
for (Object o : jsonArray) {
// 2.其次再将object转成JsonObject类型
JSONObject jsonObject = (JSONObject) JSONObject.parse(JSON.toJSONString(o));
// 3.最后根据对应key获取对应的value值
System.out.println(jsonObject.get("san"));
System.out.println(jsonObject.get("wang"));
System.out.println(jsonObject.get("si"));
System.out.println(jsonObject.get("lao"));
System.out.println(jsonObject.get("wu"));
} 结果如下:
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
------------------------------张三 老王 李四 老张 王五-----------------------------------------
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------

四、调用Entry对象中的getkey()和getValue()方法获取键值

/**
* 如果既要遍历key又要value,那么建议这种方式,应为如果先获取keySet然后再执行
* map.get(key),map内部会执行两次遍历。
* 一次是在获取keySet的时候,一次是在遍历所有key的时候。
* 当我调用put(key,value)方法的时候,首先会把key和value封装到
* Entry这个静态内部类对象中,把Entry对象再添加到数组中,所以我们想获取
* map中的所有键值对,我们只要获取数组中的所有Entry对象,接下来
* 调用Entry对象中的getKey()和getValue()方法就能获取键值对了
*/
Set<java.util.Map.Entry<String, String>> entrys = map.entrySet();
for (java.util.Map.Entry<String, String> entry : entrys) {
  System.out.println(entry.getKey() + "--" + entry.getValue());
}
 
结果如下:
--------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
------------------------------------san--张三------------------------------------------
------------------------------------wang--老王-----------------------------------------
------------------------------------si--李四-------------------------------------------
------------------------------------lao--老张------------------------------------------
------------------------------------wu--王五-------------------------------------------
--------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------

最新文章

  1. WCF学习系列四--【WCF Interview Questions – Part 4 翻译系列】
  2. jquery选择器案例
  3. C#机器视觉入门系列1-转化为灰度图&amp;&amp;3*3模糊
  4. OpenGL问题拾遗
  5. 域环境下装SQL SERVER的一次惨痛经历
  6. mysql innodb存储引擎介绍
  7. 【转】Java之WeakReference与SoftReference使用讲解
  8. C++之路进阶——codevs2366(朋友圈)
  9. unity3d首次倒入工程文件出错Opening file Library/FailedAssetImports.txt failed解决方法
  10. 【css】 收藏 纯css打造 mackbook air
  11. SQLite使用教程5 分离数据库
  12. C# 序列化和反序列
  13. ls命令 ls -trl
  14. Java 重入锁 ReentrantLock
  15. 2.开启TFTP,NFS,SAMBA,SSH服务
  16. PHP拓展配置redis、phalcon
  17. 050 Kafka的引入介绍
  18. NOIP2011普及组 数字反转
  19. ASP.NET CORE 2.0 发布到IIS,IIS如何设置环境变量来区分生产环境和测试环境
  20. Array,ArrayList,泛型List比较

热门文章

  1. Mybatis更新和删除数据
  2. I/O 引脚
  3. oracle sqlplus不支持上下键查看历史记录问题
  4. 初识gradle, idea+springboot Demo
  5. Attention Mechanism in Computer Vision
  6. [AcWing 795] 前缀和
  7. c++:-1
  8. [笔记] $f(i)$ 为 $k$ 次多项式,$\sum_{i=0}^nf(i)\cdot q^i$ 的 $O(k\log k)$ 求法
  9. Rainbond结合NeuVector实践容器安全管理
  10. 超全面!1.5w字总结50个Java经典基础面试题(已根据知识点分类)