根据数据中的key获取value值
2024-10-19 13:28:47
一、测试数据准备
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--王五-------------------------------------------
--------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
最新文章
- WCF学习系列四--【WCF Interview Questions – Part 4 翻译系列】
- jquery选择器案例
- C#机器视觉入门系列1-转化为灰度图&;&;3*3模糊
- OpenGL问题拾遗
- 域环境下装SQL SERVER的一次惨痛经历
- mysql innodb存储引擎介绍
- 【转】Java之WeakReference与SoftReference使用讲解
- C++之路进阶——codevs2366(朋友圈)
- unity3d首次倒入工程文件出错Opening file Library/FailedAssetImports.txt failed解决方法
- 【css】 收藏 纯css打造 mackbook air
- SQLite使用教程5 分离数据库
- C# 序列化和反序列
- ls命令 ls -trl
- Java 重入锁 ReentrantLock
- 2.开启TFTP,NFS,SAMBA,SSH服务
- PHP拓展配置redis、phalcon
- 050 Kafka的引入介绍
- NOIP2011普及组 数字反转
- ASP.NET CORE 2.0 发布到IIS,IIS如何设置环境变量来区分生产环境和测试环境
- Array,ArrayList,泛型List比较
热门文章
- Mybatis更新和删除数据
- I/O 引脚
- oracle sqlplus不支持上下键查看历史记录问题
- 初识gradle, idea+springboot Demo
- Attention Mechanism in Computer Vision
- [AcWing 795] 前缀和
- c++:-1
- [笔记] $f(i)$ 为 $k$ 次多项式,$\sum_{i=0}^nf(i)\cdot q^i$ 的 $O(k\log k)$ 求法
- Rainbond结合NeuVector实践容器安全管理
- 超全面!1.5w字总结50个Java经典基础面试题(已根据知识点分类)