通过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 对象 map1map2map3,用于存储键值对。
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);
  • map1map3 添加到 resultList 列表中。
4. 打印 List 内容
java 复制代码
System.out.println(resultList);

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

5. 使用 FastJSONList 转换为 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"
	}
]
相关推荐
南方的狮子先生2 分钟前
【数据结构】(C++数据结构)查找算法与排序算法详解
数据结构·c++·学习·算法·排序算法·1024程序员节
Lisonseekpan16 分钟前
为什么要避免使用 `SELECT *`?
java·数据库·后端·sql·mysql·oracle
一只小透明啊啊啊啊21 分钟前
Java的中间件
java·开发语言·中间件
Wilson Chen22 分钟前
深入理解 MySQL 事务与锁机制:从 ACID 到 Next-Key Lock 的实证之旅
java·数据库·mysql
学编程就要猛36 分钟前
数据结构初阶:Java中的ArrayList
java·开发语言·数据结构
JH307337 分钟前
10分钟理解泛型的通配符(extends, super, ?)
java·开发语言·windows
试试勇气1 小时前
算法工具箱之双指针
数据结构
在等晚安么1 小时前
力扣面试经典150题打卡
java·数据结构·算法·leetcode·面试·贪心算法
Fency咖啡1 小时前
Spring进阶 - Spring事务理论+实战,一文吃透事务
java·数据库·spring
Zxxxxxy_1 小时前
【MYSQL】增删改查
java·数据库·mysql