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 + "]"; } }