Java Jackson将json转换成对象

1. json转class对象

//User.java
public class User {
    private String name;
    private Integer age;
    private String address;
    public User(){
        
    }
    public User(String name, Integer age, String address) {
        super();
        this.name = name;
        this.age = age;
        this.address = address;
    }
    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 getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
}
//JSON转java对象
public static void main(String[] args) {
    try {
        ObjectMapper objectMapper = new ObjectMapper();
        
        String json = "{\"name\":\"张三\",\"age\":23,\"address\":\"深圳市\"}";
        User zhang = objectMapper.readValue(json, User.class);
        System.out.println(zhang.getName() + "\n" + zhang.getAge() + "\n" + zhang.getAddress());
    } catch(IOException e) {
        e.printStackTrace();
    }
}

2. json转list对象

public static void main(String[] args) {
    try {
        ObjectMapper objectMapper = new ObjectMapper();
        //JSON转list
        String listJson = "[{\"name\":\"张三\",\"age\":21,\"address\":\"深圳\"}," + "{\"name\":\"李四\",\"age\":11,\"address\":\"武汉\"}," + "{\"name\":\"王五\",\"age\":31,\"address\":\"北京\"}]";
        JavaType javaType1 = objectMapper.getTypeFactory().constructParametricType(ArrayList.class, User.class);
        List < User > userList = (List < User > ) objectMapper.readValue(listJson, javaType1);
        for (User user1: userList) {
            System.out.println(user1.getName() + "\t" + user1.getAge() + "\t" + user1.getAddress());
        }
    } catch(IOException e) {
        e.printStackTrace();
    }
}

3. json转map对象

public static void main(String[] args) {
    try {
        ObjectMapper objectMapper = new ObjectMapper();
        //JSON转map
        String mapJson = "{\"one\":{\"name\":\"张三\",\"age\":21,\"address\":\"深圳\"}," + "\"two\":{\"name\":\"李四\",\"age\":11,\"address\":\"武汉\"}," + "\"three\":{\"name\":\"王五\",\"age\":31,\"address\":\"北京\"}}";
        JavaType javaType2 = objectMapper.getTypeFactory().constructParametricType(HashMap.class, String.class, User.class);
        Map < String,User > userMap = (Map < String, User > ) objectMapper.readValue(mapJson, javaType2);
        User one = userMap.get("one");
        User two = userMap.get("two");
        User three = userMap.get("three");
        System.out.println(one.getName() + "\t" + one.getAge() + "\t" + one.getAddress());
        System.out.println(two.getName() + "\t" + two.getAge() + "\t" + two.getAddress());
        System.out.println(three.getName() + "\t" + three.getAge() + "\t" + three.getAddress());
    } catch(IOException e) {
        e.printStackTrace();
    }
}

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。