使用HuTool将HashMap和ArrayList进行Json的相互转化

在这里插入图片描述

前言

在写一个业务时,需要将HashMap转为Json发送,再在别处将接收的Json转为HashMap,在网上搜了半天,最后发现了这个方法,于是记录下来:

过程比较啰嗦,想直接看结果的可以拉到最下面

HashMap 与 Json 的相互转换

首先导入HuTool依赖:

<dependency>
   <groupId>cn.hutool</groupId>
   <artifactId>hutool-all</artifactId>
   <version>5.8.18</version>
</dependency>

我们新建一个测试类,创建一个HashMap:

@SpringBootTest
public class test {

	@Test
	void test(){
		HashMap<String, Integer> map = new HashMap<>();
		map.put("orderId",1);
		map.put("num",1);
	}
}
  • 将HashMap转为Json:
String jsonMap = JSONUtil.toJsonStr(map);
  • 重点来了,再将Json转为HashMap
HashMap<String,Integer> hashMap = JSONUtil.parseObj(jsonMap).toBean(HashMap.class);
  • 输出:
System.out.println("将jsonMap转为hashMap = " + hashMap);
Integer orderId = hashMap.get("orderId");
System.out.println("orderId = " + orderId);
Integer num = hashMap.get("num");
System.out.println("num = " + num);

结果如图所示:

ArrayList 与 Json 的相互转换

  • 首先创建一个ArrayList,里面装了一个Map,转为Json
ArrayList<Map> list = new ArrayList<>();
list.add(map);
System.out.println("list = " + list);
String jsonList = JSONUtil.toJsonStr(list);
System.out.println("jsonList = " + jsonList);
  • 输出一下:

  • 将Json转为ArrayList:

JSONUtil.toList()方法需要传入两个参数:一个JsonArray,一个要转换的类型,这里new一个JsonArray

JSONArray jsonArray = new JSONArray(jsonList);
List<Map> mapList = JSONUtil.toList(jsonArray, Map.class);
System.out.println("将jsonList转为List = " + mapList);
  • 输出结果:

  • 下面试试转换参数为对象的List:

Users users = new Users();
Users users1 = new Users();
Users users2 = new Users();
Users users3 = new Users();
Users users4 = new Users();
Users users5 = new Users();
users.setId(1);
users1.setId(1);
users2.setId(1);
users3.setId(1);
users4.setId(1);
users5.setId(1);
ArrayList<Users> list1 = new ArrayList<>();
list1.add(users);
list1.add(users1);
list1.add(users2);
list1.add(users3);
list1.add(users4);
list1.add(users5);
  • 转换操作:
String objListJson = JSONUtil.toJsonStr(list1);
System.out.println("对象List转为objListJson = " + objListJson);
// 转为JSONArray
JSONArray objects = new JSONArray(objListJson);
// 转为List
List<Users> users6 = JSONUtil.toList(objects, Users.class);
Integer id = users6.get(0).getId();
System.out.println("id = " + id);

结果:

在这里插入图片描述

总结:

HashMap 转为 Json :

String jsonMap = JSONUtil.toJsonStr(map);

Json 转为HashMap:

HashMap<String,Integer> hashMap = JSONUtil.parseObj(jsonMap).toBean(HashMap.class);

ArrayList 转为 Json :

String jsonList = JSONUtil.toJsonStr(list);

Json 转为 ArrayList :

JSONArray objects = new JSONArray(objListJson);
List<Users> users6 = JSONUtil.toList(objects, Users.class);
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值