Map json list set 对象之间转换

第一步导入jar

jackson-annotations-2.6.0-xh.jar

jackson-core-2.6.0-xh.jar

jackson-databind-2.6.0-xh.jar

jackson-jr-all-2.4.3-xh.jar

第二:po层的封装

Userdao:-------------------------------------------------------------------

package com.jadl.po;


import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;


public class User {
private String id; //标识  
    private String name;    //姓名  
    private int age;    //年龄  
    private double pay; //工资   
    private boolean valid;  //是否有效  
    private char one; //一个字符  
    private Date birthday;  //生日  
      
    private Link link; //联系方式,自定义  
      
    private Map map; //测试用  
    private List list; //测试用  
    private Set set; //测试用  
    public String getId()  
    {  
        return id;  
    }  
    public void setId(String id)  
    {  
        this.id = id;  
    }  
    public String getName()  
    {  
        return name;  
    }  
    public void setName(String name)  
    {  
        this.name = name;  
    }  
    public int getAge()  
    {  
        return age;  
    }  
    public void setAge(int age)  
    {  
        this.age = age;  
    }  
    public double getPay()  
    {  
        return pay;  
    }  
    public void setPay(double pay)  
    {  
        this.pay = pay;  
    }  
    public boolean isValid()  
    {  
        return valid;  
    }  
    public void setValid(boolean valid)  
    {  
        this.valid = valid;  
    }  
    public char getOne()  
    {  
        return one;  
    }  
    public void setOne(char one)  
    {  
        this.one = one;  
    }  
    public Date getBirthday()  
    {  
        return birthday;  
    }  
    public void setBirthday(Date birthday)  
    {  
        this.birthday = birthday;  
    }  
    public Link getLink()  
    {  
        return link;  
    }  
    public void setLink(Link link)  
    {  
        this.link = link;  
    }  
    public Map getMap()  
    {  
        return map;  
    }  
    public void setMap(Map map)  
    {  
        this.map = map;  
    }  
    public List getList()  
    {  
        return list;  
    }  
    public void setList(List list)  
    {  
        this.list = list;  
    }  
    public Set getSet()  
    {  
        return set;  
    }  
    public void setSet(Set set)  
    {  
        this.set = set;  
    }  


}

Linkpo---------------------------------------------------------------------------------------

package com.jadl.po;


public class Link {
private String phone; //移动电话  
    private String address; //地址  
    private String qq; //QQ  
      
    public String getPhone()  
    {  
        return phone;  
    }  
    public void setPhone(String phone)  
    {  
        this.phone = phone;  
    }  
    public String getAddress()  
    {  
        return address;  
    }  
    public void setAddress(String address)  
    {  
        this.address = address;  
    }  
    public String getQq()  
    {  
        return qq;  
    }  
    public void setQq(String qq)  
    {  
        this.qq = qq;  
    }  


}

第三步测试代码:


package com.jadl.main;



import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;


import com.fasterxml.jackson.core.JsonParseException;


import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.jadl.po.Link;
import com.jadl.po.User;


public class JsonTest {
public static void main(String[] args) throws JsonParseException, JsonMappingException, IOException {
User user=new User();  
        user.setId("01");  
        user.setName("张三");  
        user.setAge(33);  
        user.setPay(6666.88);  
        user.setValid(true);  
        user.setOne('E');  
        user.setBirthday(new Date(20l*366*24*3600*1000)); //1990年 
        //--------------
        Link link = new Link();  
        link.setAddress("河南省济源市");  
        link.setPhone("13899995555");  
        link.setQq("123456");  
        user.setLink(link); 
        //---------------
        Map map=new HashMap();  
        map.put("aa", "this is aa");  
        map.put("bb", "this is bb");  
        map.put("cc", "this is cc");  
        user.setMap(map);  
        //----
        List list=new ArrayList(){};  
        list.add("普洱");  
        list.add("大红袍");  
        user.setList(list); 
        
        //---------
        Set set=new HashSet();  
        set.add("篮球");  
        set.add("足球");  
        set.add("乒乓球");  
        user.setSet(set);
        //-----------
        ObjectMapper mapper = new ObjectMapper(); //转换器  
        String json;
// 对象--json  
    //将对象转换成json  
json = mapper.writeValueAsString(user);
System.out.println(json);

//测试02:json--map  
        Map m = mapper.readValue(json, Map.class); //json转换成map  
          
        System.out.println("pay:"+m.get("pay").getClass().getName()); //java.lang.Double  
        System.out.println("valid:"+m.get("valid").getClass().getName()); //java.lang.Boolean  
        System.out.println("birthday:"+m.get("birthday")); //java.lang.Long  
        System.out.println("link:"+m.get("link")); //java.util.LinkedHashMap  
        System.out.println("map:"+m.get("map")); //java.util.LinkedHashMap  
        System.out.println("list:"+m.get("list")); //java.util.ArrayList  
        System.out.println("set:"+m.get("set")); //java.util.ArrayList  
      
        //测试03:map--json  
        json=mapper.writeValueAsString(m); //map转json 
        System.out.println(json);
        //测试04:json--对象  
        User u=mapper.readValue(json, User.class); //json转java对象。经测,转成对象后,一切恢复正常  
        System.out.println("pay:"+u.getPay());  
        System.out.println("valid:"+u.isValid());  
        System.out.println("birthday:"+u.getBirthday());  
        System.out.println("link:"+u.getLink());  
        System.out.println("map:"+u.getMap());  
        System.out.println("list:"+u.getList());  
        System.out.println("set:"+u.getSet()); 
      //测试05:其他转换 
        System.out.println("其他转换 ------------------");
        byte[] data=mapper.writeValueAsBytes(u);
            for (int i = 0; i < data.length; i++) {
            ///System.out.println(data[i]);

}

}


}

猜你喜欢

转载自blog.csdn.net/mrf_w/article/details/78349841
今日推荐