1. 程式人生 > >jackson完成json和物件/map/list互轉

jackson完成json和物件/map/list互轉

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