jackson的基本使用

来源:互联网 发布:java生成soap报文 编辑:程序博客网 时间:2024/05/16 05:59

在HomeSystem项目中用到json,所以采用jackson框架来自动转换,以下是记录一下基本的操作


1、在pom.xml中添加依赖

<!-- jackson --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId></dependency>

2、写工具类JsonUtil、采用单例模式

import java.io.IOException;import java.io.StringWriter;import com.fasterxml.jackson.core.JsonFactory;import com.fasterxml.jackson.core.JsonGenerator;import com.fasterxml.jackson.core.JsonParseException;import com.fasterxml.jackson.databind.JsonMappingException;import com.fasterxml.jackson.databind.ObjectMapper;/** * json工具类 * @author CSH * 2015-5-25 */public class JsonUtil {    private static JsonUtil ju;    private static JsonFactory jf;    private static ObjectMapper mapper;    private JsonUtil(){}        public static JsonUtil getInstance() {        if(ju==null) ju = new JsonUtil();        return ju;    }        public static ObjectMapper getMapper() {        if(mapper==null) {            mapper = new ObjectMapper();        }        return mapper;    }        public static JsonFactory getFactory() {        if(jf==null) jf = new JsonFactory();        return jf;    }        public String obj2json(Object obj) {        JsonGenerator jg = null;        try {            jf = getFactory();            mapper = getMapper();            StringWriter out = new StringWriter();            jg = jf.createJsonGenerator(out);            mapper.writeValue(jg, obj);            return out.toString();        } catch (IOException e) {            e.printStackTrace();        } finally {            try {                if(jg!=null) jg.close();            } catch (IOException e) {                e.printStackTrace();            }        }        return null;    }        public Object json2obj(String json,Class<?> clz) {        try {            mapper = getMapper();            return mapper.readValue(json,clz);        } catch (JsonParseException e) {            e.printStackTrace();        } catch (JsonMappingException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        return null;    }}


3、测试类TestJson

import org.junit.Test;import com.csh.homesystem.model.Diary;import com.csh.homesystem.model.Home;/** * @author CSH * 2015-5-25 */class Person {private int id;private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}class User {private int age;private Person person;public int getAge() {return age;}public void setAge(int age) {this.age = age;}public Person getPerson() {return person;}public void setPerson(Person person) {this.person = person;}@Overridepublic String toString() {return "User [age=" + age + ", person=" + person.getId() + ", " + person.getName() + "]";}}public class TestJson {@Testpublic void test01(){Person p = new Person();p.setId(1);p.setName("111");User u = new User();u.setAge(20);u.setPerson(p);String str = JsonUtil.getInstance().obj2json(u);System.out.println(str);User user = (User) JsonUtil.getInstance().json2obj(str, User.class);System.out.println(user.toString());}}

以上是简单的jackson运用

0 0
原创粉丝点击