Jackson官網 http://wiki.fasterxml.com/
Jackson下載 https://github.com/FasterXML/jackson-annotations/wikijava
本文代碼下載 https://pan.baidu.com/s/1dEHqPlZgit
本文介紹Jackson簡單應用,但願能對你們有用,操做流程以下:github
第一步:建立Maven項目,配置pom.xml。json
<dependencies> <!-- Jackson包 --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.9.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.9.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.1</version> </dependency> </dependencies>
第二步:建立測試文件,功能測試。app
Users對象ide
package com.learn.jackson; public class Users { private String uuid; private String name; private Integer age; private Integer sex; private String remark; public Users() { } public Users(String uuid,String name,Integer age, Integer sex, String remark){ this.uuid = uuid; this.name = name; this.age = age; this.sex = sex; this.remark = remark; } public String getUuid() { return uuid; } public void setUuid(String uuid) { this.uuid = uuid; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Integer getSex() { return sex; } public void setSex(Integer sex) { this.sex = sex; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public String getMassages(){ return uuid+"--"+name+"--"+sex+"--"+age+"--"+remark; } }
測試文件測試
package com.learn.jackson; import java.io.IOException; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import junit.framework.TestCase; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; public class AppTest extends TestCase { public static void main(String[] args) throws IOException { //測試數據 Users user = new Users("aaa", "aaa", 23, 1, "這是aaa"); List<Users> list = new ArrayList<Users>(); list.add(new Users("bbb", "bbb", 45, 1, "這是bbb")); list.add(new Users("ccc", "ccc", 23, 1, "這是ccc")); //Jackson對象 ObjectMapper mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); System.out.println("********JSON -> 對象************"); String jsonUser = mapper.writeValueAsString(user); String jsonList = mapper.writeValueAsString(list); System.out.println(jsonUser); System.out.println(jsonList); System.out.println("********對象 -> JSON************"); Users us = mapper.readValue(jsonUser, Users.class); System.out.println(us.getMassages()); List<LinkedHashMap> lis = mapper.readValue(jsonList, List.class); for (LinkedHashMap map : lis) { String json = mapper.writeValueAsString(map); Users uu1 = mapper.readValue(json, Users.class); System.out.println(uu1.getMassages()); } } }
異常處理:ui
JSON轉實體拋出異常com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException,是因爲實體中缺乏JSON的某個字段引發。可經過以下配置解決:this
1.經過mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)配置實現。spa
2.經過@JsonIgnoreProperties(ignoreUnknown = true)註解實現