public class TestClass { // 测试序列化--序列化一个Bean @Test public void test1() throws Exception { User user = new User(); user.setName("trek"); user.setAge(11); user.setBirthday(new Date()); user.setEmail("1112qq.com"); // 序列化对象 ObjectMapper mapper = new ObjectMapper(); String value = mapper.writeValueAsString(user); System.out.println(value); } // 序列化一个Map @Test public void test2() throws Exception { Map<String, User> map = new HashMap<String, User>(); User user = new User(); user.setName("trek"); user.setAge(11); user.setBirthday(new Date()); user.setEmail("1112qq.com"); User temp = new User(); BeanUtils.copyProperties(user, temp); temp.setAge(111); map.put("1", user); map.put("2", temp); ObjectMapper mapper = new ObjectMapper(); String value = mapper.writeValueAsString(map); System.out.println(value); } // 测试序列化一个List @Test public void test3() throws Exception { List<User> list = new ArrayList<>(); for(int i = 0;i<3;i++) { User user = new User(); user.setName("trek"); user.setAge(11+i); user.setBirthday(new Date()); user.setEmail("1112qq.com"); list.add(user); } ObjectMapper mapper = new ObjectMapper(); String value = mapper.writeValueAsString(list); System.out.println(value); } //测试反序列化 --一个Bean @Test public void test4() throws IOException { ObjectMapper mapper = new ObjectMapper(); String value = "{"name":"trek","age":11,"birthday":1528178729297,"email":"1112qq.com"}"; // 反序列化 System.out.println(mapper.readValue(value, User.class)); } //测试反序列化 --- Map结构 ,现在需要一个类型引用 @Test public void test5() throws Exception { ObjectMapper mapper = new ObjectMapper(); String value = "{"1":{"name":"trek","age":11,"birthday":1528178874584,"email":"1112qq.com"},"2":{"name":"trek","age":111,"birthday":1528178874584,"email":"1112qq.com"}}" ; Map<String,Object> map = mapper.readValue(value, new TypeReference<Map<String,User>>() {}); System.out.println(map); } //我们可以使用typeRefrence来完成复杂的类型的转化. }
[1] 需要注意的是一个对象,ObjectMapper对象
[2]需要注意的是两个方法 readValue() ,将一个字符串转换为一个对象
writeValueAsString(),将一个对象转换为json格式
[3]需要注意的类型,对于复杂类型的情况下,我们需要创建一个类型模板TypeRefrence ,进行反序列化的类型指明.