jackson完成json和物件/map/list互轉
阿新 • • 發佈:2018-11-22
jackson是一款非常好用的json轉換工具,總結一下具體用法
一:匯入依賴
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.3</version>
</dependency>
二:User
package com.mote.jackson; public class User { private String name; private Integer age; private String city; public User() { super(); } public User(String name, Integer age, String city) { super(); this.name = name; this.age = age; this.city = city; } 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 String getCity() { return city; } public void setCity(String city) { this.city = city; } @Override public String toString() { return "User [name=" + name + ", age=" + age + ", city=" + city + "]"; } }
三:jackson操作
package com.mote.jackson; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.ObjectMapper; public class JackSonDemo { private static ObjectMapper MAPPER = new ObjectMapper(); public static void main(String[] args) throws Exception { //物件轉json User user = new User("tom",23,"上海"); String json = MAPPER.writeValueAsString(user); System.out.println(json); //json轉物件 User uuser = MAPPER.readValue(json, User.class); System.out.println(uuser); //map<String,String>轉json HashMap<String, String> map = new HashMap<String,String>(); map.put("name", "jack");map.put("city", "beijin"); String mjson = MAPPER.writeValueAsString(map); System.out.println(mjson); //json轉map<String,String> HashMap<String,String> mmap = MAPPER.readValue(mjson, HashMap.class); System.out.println(mmap); //map<String,User>轉json HashMap<String, User> umap = new HashMap<String, User>(); umap.put(user.getName(), user); String mmjson = MAPPER.writeValueAsString(umap); System.out.println(mmjson); //json轉map<String,User> JavaType jvt = MAPPER.getTypeFactory().constructParametricType(HashMap.class,String.class,User.class); Map<String,User> urMap = MAPPER.readValue(mmjson, jvt); System.out.println(urMap); //list<String>轉json ArrayList<String> list = new ArrayList<String>(); list.add("jack"); list.add("tom"); String ljson = MAPPER.writeValueAsString(list); System.out.println(ljson); //json轉list<String> ArrayList<String> sList = MAPPER.readValue(ljson, ArrayList.class); System.out.println(sList); //list<User>轉json List<User> ulist = new ArrayList<User>(); ulist.add(user); String ujson = MAPPER.writeValueAsString(ulist); System.out.println(ujson); //json轉list<User> //原文章中的jt方法已經被java廢棄,改為如下方式: //JavaType jt = MAPPER.getTypeFactory().constructParametricType(ArrayList.class, User.class); //List<User> urlist = MAPPER.readValue(ujson, jt); List<User> beanList = MAPPER.readValue(ujson, new TypeReference<List<User>>() {}); System.out.println(urlist); } }
轉載自:https://blog.csdn.net/qq_37936542/article/details/79268402?utm_source=copy