通过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"
	}
]
相关推荐
怒放吧德德1 小时前
RocketMQ从实战到源码:初识RocketMQ
java·后端·rocketmq
怎么就重名了1 小时前
Kivy的属性系统
java·前端·数据库
daidaidaiyu1 小时前
一文入门 Spring Security with 单点登录(jasig)
java·spring
哈哈老师啊1 小时前
Springboot就业管理系统bk5uv(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
java·spring boot·spring
chao1898441 小时前
基于C#实现Modbus通信及CRC校验
java·开发语言·c#
hunjinYang2 小时前
源码配置——基于Gradle搭建spring-framework-6.2.15版本阅读环境
java·后端·spring
编程饭碗2 小时前
【Spring全局异常处理 早抛晚捕】
java·数据库·spring
咸鱼2.02 小时前
【java入门到放弃】Elasticsearch概念
java·elasticsearch·jenkins
毕设源码-邱学长2 小时前
【开题答辩全过程】以 基于JSP论坛系统设计与实现为例,包含答辩的问题和答案
java·开发语言
找不到、了2 小时前
系统常用的限流方案实践
java