通过Map类和List类的List<Map<>>组合类体会JSON

下面这段 Java 代码使用 JUnit 的 @Test 注解定义了一个测试方法 testMapList。该方法的主要功能是创建一个包含多个 Map 对象的 List,并将这些 Map 对象添加到列表中,然后打印列表内容,最后使用 FastJSON 库将列表转换为JSON字符串、JSON格式化字符串并打印。

java 复制代码
@Test  
public void testMapList() {  
  
	List<Map<String,Object>> resultList = new ArrayList<>();  
	Map<String, Object> map1 = new HashMap<>();  
	Map<String, Object> map2 = new HashMap<>();  
	Map<String, Object> map3 = new HashMap<>();  
	  
	map1.put("键1","值1");  
	map1.put("键2","值2");  
	map1.put("键3","值3");  
	map2.put("键5","值5");  
	map1.put("键4",map2);  
	  
	map3.put("键6","值6");  
	resultList.add(map1);  
	resultList.add(map3);  
	  
	System.out.println(resultList);  
	  
	// 使用 FastJSON 将 resultList 转换为 JSON 字符串  
	String jsonString = JSON.toJSONString(resultList);  
	System.out.println(jsonString);  
	
	// 使用 FastJSON 将 resultList 转换为格式化的 JSON 字符串,符合阅读习惯
	String fomatJsonString = JSON.toJSONString(resultList, SerializerFeature.PrettyFormat); 
	System.out.println(fomatJsonString);
}
1. 方法定义和初始化
java 复制代码
@Test
public void testMapList() {
    List<Map<String,Object>> resultList = new ArrayList<>();
    Map<String, Object> map1 = new HashMap<>();
    Map<String, Object> map2 = new HashMap<>();
    Map<String, Object> map3 = new HashMap<>();
}
  • List<Map<String,Object>> resultList = new ArrayList<>();:创建一个 List 对象 resultList,用于存储 Map 对象。List 的泛型类型是 Map<String, Object>,表示该列表中的每个元素都是一个键为 String 类型,值为 Object 类型的 Map。
  • 分别创建三个 Map 对象 map1、map2 和 map3,用于存储键值对。
2. 向 Map 中添加键值对
java 复制代码
map1.put("键1","值1");
map1.put("键2","值2");
map1.put("键3","值3");
map2.put("键5","值5");
map1.put("键4",map2);
map3.put("键6","值6");
  • map1.put("键1","值1");:向 map1 中添加一个键值对,键为 "键1",值为 "值1"。
  • map1.put("键4",map2);:将 map2 作为值,键为 "键4" 放入 map1 中。这意味着 map1 中的 "键4" 对应的值是另一个 Map 对象 map2。
  • 同理,向 map2 中添加 "键5" 和 "值5",向 map3 中添加 "键6" 和 "值6"。
3. 将 Map 对象添加到 List 中
java 复制代码
resultList.add(map1);
resultList.add(map3);
  • 将 map1 和 map3 添加到 resultList 列表中。
4. 打印 List 内容
java 复制代码
System.out.println(resultList);

使用 System.out.println 方法打印 resultList 的内容。由于 List 类重写了 toString() 方法,所以会按照 Java 的集合格式输出列表中的元素。

5. 使用 FastJSON 将 List 转换为 JSON 字符串并打印
xml 复制代码
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>2.0.30</version>
</dependency>
java 复制代码
// 这里使用了阿里FastJSON库,需要提前导入到maven中
String jsonString = JSON.toJSONString(resultList);
System.out.println(jsonString);

// 使用 FastJSON 将 resultList 转换为格式化的 JSON 字符串,符合阅读习惯
String fomatJsonString = JSON.toJSONString(resultList, SerializerFeature.PrettyFormat); 
System.out.println(fomatJsonString);
  • JSON.toJSONString(resultList);:使用 FastJSON 库的 toJSONString 方法将 resultList 转换为 JSON 格式的字符串。
    • JSON.toJSONString(resultList, SerializerFeature.PrettyFormat);:使用 FastJSON 库的 toJSONString 方法将 resultList 转换为 JSON 格式化后的字符串。
  • System.out.println(jsonString);:打印转换后的 JSON 字符串。
6.打印结果
cmd 复制代码
[{键1=值1, 键4={键5=值5}, 键2=值2, 键3=值3}, {键6=值6}]
[{"键1":"值1","键4":{"键5":"值5"},"键2":"值2","键3":"值3"},{"键6":"值6"}]
[
	{
		"键1":"值1",
		"键4":{
			"键5":"值5"
		},
		"键2":"值2",
		"键3":"值3"
	},
	{
		"键6":"值6"
	}
]
相关推荐
_Evan_Yao5 分钟前
Redis 缓存穿透、击穿、雪崩,一次讲清!
java·spring·mybatis
梓豪csd31 分钟前
消息订阅中心:谁该收到哪条通知
java·开发语言·人工智能·低代码·自动化·1024程序员节
秋饼32 分钟前
Spring AI 2.1 Message Parts 深度实战:推理签名回放与跨轮记忆持久化的源码级落地
java·ai·技术分享·后端开发
BK贝壳1 小时前
bool-hybrid-array 落盘我只认 .bha:用 Create_BHA / Ask_BHA 做布尔数组序列化
数据结构·python·numpy·1024程序员节
thefool1122661 小时前
TCP 1
java·1024程序员节
金銀銅鐵4 小时前
[Java] 用 GUI 展示 EnumSet 增减元素时的内部变化(下)
java·后端·ai编程
?abc!4 小时前
(数组)581. 最短无序连续子数组
数据结构·算法·leetcode
AI人工智能+电脑小能手4 小时前
一次请求打几个下游,这个Java并行任务工具类6个方法按序聚合
java·线程池·并发编程·1024程序员节·批量处理·并行任务
paopaokaka_luck6 小时前
心理咨询管理系统(WebSocket实时沟通、基于用户的协同过滤、 ECharts多维分析、 预约业务流程、预约校验与定时处理)
java·vue.js·spring boot·mysql·spring·echarts·1024程序员节
2301_32241428046 小时前
springboot农产品交易平台的设计与实现08055-计算机毕设 原创(免费领源码+部署教程+开发环境)
java·spring boot·redis·mysql·tomcat·maven·mybatis