jackjson的使用

     Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。

相比json-lib,jackjson的使用更加的简单方便所依赖的jar包也比较少,jackjson的社区比较的活跃,版本更新的速度较快,jackjson同时能支持注解的方式和对xml进行转换。

 

        User user = new User();
        user.setName("小明");
        user.setEmail("[email protected]");
        user.setAge(20);
        SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        user.setBirthday(dateformat.parse("2014-10-01 17:39:11"));

        ObjectMapper objectMapper = new ObjectMapper();
        // 将对象转换成json格式
        objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));

        String json = objectMapper.writeValueAsString(user);
        System.out.println(json);
        // 将json格式转换成对象

        User user2 = objectMapper.readValue(json, User.class);
        System.out.println(user2.toString());
       
        // 将集合转换成json
        List<User> list = new ArrayList<User>();
        list.add(user);
        String jsonString = objectMapper.writeValueAsString(list);
        System.out.println(jsonString);
        // json转换成集成对象
        objectMapper.writeValue(new File("E:/lib/jackjson/jackjsonTest.txt"), jsonString);
       
        User user3 = new Lisi();
        user3.setAge(30);
        user3.setBirthday(new Date());
        user3.setEmail("[email protected]");
        user3.setName("lisi");
        System.out.println(objectMapper.writeValueAsString(user3));

   

      jackjson的常用注解如下:

        @JsonIgnoreProperties(ignoreUnknown=true) :对于未知的属性,进行忽略

        @JsonTypeInfo(use=JsonTypeInfo.Id.CLASS, include=JsonTypeInfo.As.PROPERTY, property="@class") :作用于类/接口,被用来开启多态类型处理,对基类/接口和子类/实现类都有效.

             

         @JsonIgnore:可以忽略的属性

 

       关于jackjson中注解的详细说明,可以参考

          http://blog.csdn.net/sdyy321/article/details/40298081

你可能感兴趣的:(jackjson的使用)