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