jackson-databind-2.7.0
Streaming: jackson-core jar,定义了底层的streaming API和实现了Json特性。
Annotations: jackson-annotations jar,包含了标准的Jackson注解。
Streaming: jackson-core jar,定义了底层的streaming API和实现了Json特性。
Annotations: jackson-annotations jar,包含了标准的Jackson注解。
Databind: jackson-databind jar,实现了数据绑定和对象序列化,它依赖于streaming和annotations的包。
需要的jar:
Maven 依赖:
<properties>
<version>0.0.1-SNAPSHOT</version>
<jackson.version>2.7.0</jackson.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
</dependencies>
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
public class DataFormatExample {
public static void main(String[] args) throws Exception {
ObjectMapper mapper = new ObjectMapper();
User user1 = new User("lu",1);
User user2 = new User("deng",0);
List<User> userList = new ArrayList<User>();
userList.add(user1);
userList.add(user2);
Map<String,User> userMap = new HashMap<String, User>();
userMap.put("user1", user1);
userMap.put("user2", user2);
String userFormatJson1 = mapper.writeValueAsString(user1);//对象转JSON
String userFormatJson2 = mapper.writeValueAsString(user2);
String listFormatJson = mapper.writeValueAsString(userList);
String mapFormatJson = mapper.writeValueAsString(userMap);
System.out.println(userFormatJson1);
System.out.println(userFormatJson2);
System.out.println(listFormatJson);
System.out.println(mapFormatJson);
user1 = mapper.readValue(userFormatJson1, User.class);//JSON转对象
user2 = mapper.readValue(userFormatJson2, User.class);
userList = mapper.readValue(listFormatJson, new TypeReference<List<User>>() {});
userMap = mapper.readValue(mapFormatJson, new TypeReference<Map<String,User>>() {});
System.out.println(user1);
System.out.println(user2);
System.out.println(userList);
System.out.println(userMap);
}
}
class User implements Serializable{
private static final long serialVersionUID = 2417904826221006267L;
private String name;
private int sex;//性别;1-男,0-女
public User() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public User(String name, int sex) {
this.name = name;
this.sex = sex;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + sex;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
User other = (User) obj;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (sex != other.sex)
return false;
return true;
}
@Override
public String toString() {
return "User [name=" + name + ", sex=" + sex + "]";
}
}