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
- jackson的基本使用
- Jackson的基本使用
- jackson基本使用库
- jackson的基本操作
- Jackson的使用
- Jackson的使用
- Jackson的简单使用
- java jackson的使用
- [Jackson] @JsonView的使用
- jackson的使用
- Jackson的简单使用
- jackson的使用
- Jackson的使用
- Jackson的使用总结
- Jackson的json转换和Jackson Annotations 基本用法
- Jackson和Gson的使用
- Jackson.jar的使用记录
- 使用jackson遇到的问题
- POJ 2142 扩展欧几里得
- Project Euler:Problem 12 Highly divisible triangular number
- ubantu下如何完全彻底卸载mysql
- 英语六级、考研高频词汇
- OC视频笔记3.1(Foundation框架,NSObject里面的方法)3.2(isKindOfClass和isMemberOfClass)
- jackson的基本使用
- Lua中的线程和状态
- 队列(一)
- 象棋将帅问题
- 技术研究(发明)的途径及其手段概述-1
- 如何在Windows下给Vim安装YouCompleteMe
- xmu 1075: 安全网络 ver.2(最短路模型)
- DFS&Iteration Binary Tree Inorder Traversal
- 一篇文章读懂开源web引擎Crosswalk