jackson 简单用法

            jackson简单用法           

===========================================


Name类:

public class Name {  
        private String firstName;  
        private String lastName;  
        public Name(){}  
        public Name(String firstName, String lastName) {  
            this.firstName = firstName;  
            this.lastName = lastName;  
        }  
        public String getFirstName() {  
            return firstName;  
        }  
        public void setFirstName(String firstName) {  
            this.firstName = firstName;  
        }  
        public String getLastName() {  
            return lastName;  
        }  
        public void setLastName(String lastName) {  
            this.lastName = lastName;  
        }  
        public String toString() {  
            return firstName + " " + lastName;  
        }  
    } 



Student类:

import java.util.Date;  
      
    public class Student {  
        private int id;  
        private Name name;  
        private String className;  
        private Date birthDay;  
        public Student(){}  
        public Student(int id, Name name, String className, Date birthDay) {  
            super();  
            this.id = id;  
            this.name = name;  
            this.className = className;  
            this.birthDay = birthDay;  
        }  
        public int getId() {  
            return id;  
        }  
        public void setId(int id) {  
            this.id = id;  
        }  
        public Name getName() {  
            return name;  
        }  
        public void setName(Name name) {  
            this.name = name;  
        }  
        public Date getBirthDay() {  
            return birthDay;  
        }  
        public void setBirthDay(Date birthDay) {  
            this.birthDay = birthDay;  
        }  
        public String getClassName() {  
            return className;  
        }  
        public void setClassName(String className) {  
            this.className = className;  
        }  
        @Override  
        public String toString() {  
            return "Student [birthDay=" + birthDay + ", id=" + id + ", name=" + name + ", classname="+ className + "]";  
        }  
    }

测试类:


import java.text.SimpleDateFormat;  
    import java.util.ArrayList;  
    import java.util.Date;  
    import java.util.HashMap;  
    import java.util.List;  
    import java.util.Map;  
      
    import org.codehaus.jackson.JsonGenerator;  
    import org.codehaus.jackson.map.DeserializationConfig;  
    import org.codehaus.jackson.map.ObjectMapper;  
    import org.codehaus.jackson.map.SerializationConfig;  
    import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;  
    import org.codehaus.jackson.type.TypeReference;  
      
    public class JacksonTest {  
        public static ObjectMapper getDefaultObjectMapper() {  
            ObjectMapper mapper = new ObjectMapper();  
            //设置将对象转换成JSON字符串时候:包含的属性不能为空或"";    
            //Include.Include.ALWAYS 默认    
            //Include.NON_DEFAULT 属性为默认值不序列化    
            //Include.NON_EMPTY 属性为 空("")  或者为 NULL 都不序列化    
            //Include.NON_NULL 属性为NULL 不序列化    
            mapper.setSerializationInclusion(Inclusion.NON_EMPTY);  
            //设置将MAP转换为JSON时候只转换值不等于NULL的  
            mapper.configure(SerializationConfig.Feature.WRITE_NULL_MAP_VALUES, false);  
            mapper.configure(JsonGenerator.Feature.ESCAPE_NON_ASCII, true);  
            mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));  
            //设置有属性不能映射成PO时不报错  
            mapper.disable(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES);  
            return mapper;  
        }  
        public static void main(String[] args) throws Exception{  
            //准备数据  
            Name name1 = new Name("zhang","san");  
            Name name2 = new Name("li","si");  
            Name name3 = new Name("wang","wu");  
            Student student1 = new Student(1,name1,"一班",new Date());    
            Student student2 = new Student(2,name2,"二班",new Date());    
            Student student3 = new Student(3,name3,"三班",new Date());    
            List<Student> studentList = new ArrayList<Student>();  
            studentList.add(student1);  
            studentList.add(student2);  
            studentList.add(student3);  
            Map<String,Student> studentMap = new HashMap<String, Student>();  
            studentMap.put("1", student1);  
            studentMap.put("2", student2);  
            studentMap.put("3", student3);  
            Student json2object = null;  
            List<Student> json2list = null;  
            Map<String,Student> json2map = null;  
            ObjectMapper mapper = getDefaultObjectMapper();  
              
            /* Object 转 JSON */  
            String object4json = mapper.writeValueAsString(student1);  
            System.out.println("Object ----> JSON");  
            System.out.println(object4json);  
            System.out.println("------------------------------------------------------");  
              
            /* List<Object> 转 JSON */  
            String listforjson = mapper.writeValueAsString(studentList);  
            System.out.println("List<Object> ----> JSON");  
            System.out.println(listforjson);  
            System.out.println("------------------------------------------------------");  
              
            /* Map<String,Object> 转 JSON */  
            String map4json = mapper.writeValueAsString(studentMap);  
            System.out.println("Map<String,Object> ----> JSON");  
            System.out.println(map4json);  
            System.out.println("------------------------------------------------------");  
              
            /* JSON 转 Object */  
            json2object = mapper.readValue(object4json, Student.class);  
            System.out.println("JSON ----> Object");  
            System.out.println(json2object);  
            System.out.println("------------------------------------------------------");  
            
            /* JSON 转 List<Object> */  
            json2list = mapper.readValue(listforjson, new TypeReference<List<Student>>() {});  
            System.out.println("JSON --> List<Object>");  
            System.out.println(json2list.toString());  
            System.out.println("------------------------------------------------------");  
            
            /* JSON 转 Map<String,Object> */  
            json2map = mapper.readValue(map4json, new TypeReference<Map<String,Student>>() {});  
            System.out.println("JSON --> Map<String,Object>");  
            System.out.println(json2map.toString());  
        }  
    }




原文出自http://blog.csdn.net/hi_kevin/article/details/36639571


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值