zoukankan      html  css  js  c++  java
  • 008 jackson的一些使用记录

    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 ,进行反序列化的类型指明.

  • 相关阅读:
    《锋利的jQuery》补充笔记
    sass学习笔记
    《HTML5与CSS3基础教程》学习笔记 ——补充
    ajax常见问题(部分)
    html新特性(部分)
    less 笔记
    《JavaScript高级程序设计》补充笔记2
    《JavaScript高级程序设计》补充笔记1
    《CSS3秘笈》备忘录
    显示实现接口的好处c#比java好的地方
  • 原文地址:https://www.cnblogs.com/trekxu/p/9140408.html
Copyright © 2011-2022 走看看