前言
在写一个业务时,需要将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);