当前位置: 首页 > article >正文

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

在这里插入图片描述

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


@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. 方法定义和初始化
@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 中添加键值对
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
resultList.add(map1);
resultList.add(map3);
  • map1map3 添加到 resultList 列表中。
4. 打印 List 内容
System.out.println(resultList);

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

5. 使用 FastJSONList 转换为 JSON 字符串并打印
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>2.0.30</version>
</dependency>
// 这里使用了阿里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.打印结果
[{键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"
	}
]

http://www.kler.cn/a/613140.html

相关文章:

  • 7. 实现命名路由和反向路由
  • windows第十八章 菜单、工具栏、状态栏
  • leetcode102 二叉树的层次遍历 递归
  • [贪心算法] 加油站 单调递增的数字 坏了的计算器 合并区间 无重叠区间
  • MUX VLAN -- PVLAN
  • 每日一题之杨辉三角
  • 雕琢健康生活,奏响养生乐章
  • 一周掌握Flutter开发--9. 与原生交互(上)
  • Jmeter触发脚本备份
  • 《白帽子讲 Web 安全》之服务端请求伪造(SSRF)深度剖析:从攻击到防御
  • Sa-Token
  • 探索高效的图像处理:SMFA 模块与 DMlp 类的实现解析
  • 《 C语言实现:金字塔式星号图案打印》
  • FALL靶机攻略
  • B/S阅片项目算法梳理
  • 蓝桥杯省模拟赛 阶乘求值
  • OMI(operating mode indication)
  • 攻破tensorflow,勇创最佳agent(1)---学习率learning_rate问题
  • Java + LangChain 实战入门,开发大语言模型应用!
  • ThreadLocal与Cookie + Session?