您的位置:首页 > 其它

fasterxml.jackson.

2017-08-27 00:25 387 查看
Jackson是Java中众多json处理工具的一个,比起常见的Json-lib,Gson要快一些。

import com.fasterxml.jackson.core.JsonFactory;

import com.fasterxml.jackson.core.JsonGenerator;

import com.fasterxml.jackson.core.JsonProcessingException;

第一步 准备工具类

1.CommonUtil类负责new mapper

具体如下:

/**********************CommonUtil类*****************************************/

private static ObjectMapper mapper;  

public static synchronized ObjectMapper getMapperInstance(boolean createNew) {  

        if (createNew) {  

            return new ObjectMapper();  

        } else if (mapper == null) {  

            mapper = new ObjectMapper();  

        }  

        return mapper;  

 }

/**********************CommonUtil类*****************************************/

第二步 你的实体类 举例子说明

/**********************Entity类*****************************************/

public class Person {  

    private String name;  

    private int age;  

  

    public Person() {  

    }  

  

    public Person(String name, int age) {  

        super();  

        this.name = name;  

        this.age = age;  

    }  

  

    public int getAge() {  

        return age;  

    }  

  

    public void setAge(int age) {  

        this.age = age;  

    }  

  

    public String getName() {  

        return name;  

    }  

  

    public void setName(String name) {  

        this.name = name;  

    }  

  

    @Override  

    public boolean equals(Object obj) {  

        if (this == obj) {  

            return true;  

        }  

        if (obj == null) {  

            return false;  

        }  

        if (getClass() != obj.getClass()) {  

            return false;  

        }  

        Person other = (Person) obj;  

        if (age != other.age) {  

            return false;  

        }  

        if (name == null) {  

            if (other.name != null) {  

                return false;  

            }  

        } else if (!name.equals(other.name)) {  

            return false;  

        }  

        return true;  

    }  

  

}  

/**********************Entity类*****************************************/

/**********************带集合Entity类*****************************************/

public class TestVo {   

    private String voName;   

    private List<Person> pers;   

  

    public TestVo() {   

    }   

  

    public TestVo(String voName, List<Person> pers) {   

        super();   

        this.voName = voName;   

        this.pers = pers;   

    }   

  

    public String getVoName() {   

        return voName;   

    }   

  

    public void setVoName(String voName) {   

        this.voName = voName;   

    }   

  

    public List<Person> getPers() {   

        return pers;   

    }   

  

    public void setPers(List<Person> pers) {   

        this.pers = pers;   

    }   

  

    @Override  

    public boolean equals(Object obj) {   

        if (this == obj) {   

            return true;   

        }   

        if (obj == null) {   

            return false;   

        }   

        if (getClass() != obj.getClass()) {   

            return false;   

        }   

        TestVo other = (TestVo) obj;   

        if (pers == null) {   

            if (other.pers != null) {   

                return false;   

            }   

        } else if (pers.size() != other.pers.size()) {   

            return false;   

        } else {   

            for (int i = 0; i < pers.size(); i++) {   

                if (!pers.get(i).equals(other.pers.get(i))) {   

                    return false;   

                }   

            }   

        }   

        if (voName == null) {   

            if (other.voName != null) {   

                return false;   

            }   

        } else if (!voName.equals(other.voName)) {   

            return false;   

        }   

        return true;   

    }   

}  

/**********************带集合Entity类*****************************************/

/**********************Bean2Json类*****************************************/

public static String beanToJson(Object obj) throws IOException {   

     

        ObjectMapper mapper = CommonUtil.getMapperInstance(false);   

        StringWriter writer = new StringWriter();   

        JsonGenerator gen = new JsonFactory().createJsonGenerator(writer);   

        mapper.writeValue(gen, obj);   

        gen.close();   

        String json = writer.toString();   

        writer.close();   

        return json;   

    }  

/**********************Bean2Json类*****************************************/

/**********************Json2Bean类*****************************************/

public static Object  jsonToBean(String json, Class<?> cls) throws Exception {   

    Object vo = mapper.readValue(json, cls);   

    return vo;   

}  

/**********************Json2Bean类*****************************************/

测试一下吧:

public static void main(String[] args) throws Exception {  

    // 准备数据  

    List<Person> pers = new ArrayList<Person>();  

    Person p = new Person("张三", 46);  

    pers.add(p);  

    p = new Person("李四", 19);  

    pers.add(p);  

    p = new Person("王二麻子", 23);  

    pers.add(p);  

    TestVo vo = new TestVo("一个容器而已", pers);  

    // 实体转JSON字符串  

    String json = beanToJson(vo);  

    System.out.println("Bean>>>Json----" + json);  

    // 字符串转实体  

    TestVo vo2 = (TestVo)jsonToBean(json, TestVo.class);  

    System.out.println("Json>>Bean--与开始的对象是否相等:" + vo2.equals(vo));  

  

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐