在项目开发过程中,当客户端与服务器响应时,数据交互是必不可少的。然而通过Json实现数据交互成为我们开发中的一部分,进而Jackson为我们的Json转化提供了很好的机制。下面我将利用实例总结如何使用jackson。
一.准备
如果你需要使用jackson,你必须得导入相应的架包,有如下三个包jackson-annotations;jackson-core;jackson-databind。
二.不带日期的对象实体与json互转
1.定义实体UserBean.java、DeptBean.java
package com.bijian.study;
public class UserBean {
private int userId;
private String userName;
private String password;
private String email;
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "UserBean [userId=" + userId + ", userName=" + userName + ", password=" + password + ", email=" + email
+ "]";
}
public UserBean(int userId, String userName, String password, String email) {
super();
this.userId = userId;
this.userName = userName;
this.password = password;
this.email = email;
}
public UserBean() {
super();
}
}
package com.bijian.study;
import java.util.List;
public class DeptBean {
private int deptId;
private String deptName;
private List<UserBean> userBeanList;
public int getDeptId() {
return deptId;
}
public void setDeptId(int deptId) {
this.deptId = deptId;
}
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
public List<UserBean> getUserBeanList() {
return userBeanList;
}
public void setUserBeanList(List<UserBean> userBeanList) {
this.userBeanList = userBeanList;
}
@Override
public String toString() {
String userBeanListString = "";
for (UserBean userBean : userBeanList) {
userBeanListString += userBean.toString() + "\n";
}
return "DeptBean [deptId=" + deptId + ", deptName=" + deptName + ", \nuserBeanListString=" + userBeanListString
+ "]";
}
public DeptBean(int deptId, String deptName, List<UserBean> userBeanList) {
super();
this.deptId = deptId;
this.deptName = deptName;
this.userBeanList = userBeanList;
}
public DeptBean() {
super();
}
}
2.jackson数据转换工具类
package com.bijian.study;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
/**
* The class JacksonUtil
* 使用泛型方法,把json字符串转换为相应的JavaBean对象。
* (1)转换为普通JavaBean:readValue(json,Student.class)
* (2)转换为List,如List<Student>,将第二个参数传递为Student[].class.然后使用Arrays.asList();方法把得到的数组转换为特定类型的List
*
* json字符与对像转换
*/
public final class JacksonUtil {
public static ObjectMapper objectMapper;
/**
* json对象转JAVA对象
*
* @param jsonStr
* @param valueType
* @return