使用Jackson实现Map与Bean互转方式

使用Jackson实现Map与Bean互转的方式有以下两种:

使用Jackson实现Map与Bean互转的方式有以下两种:

1. 使用ObjectMapper将Map转为Bean对象

首先需要导入jackson-databind的依赖,然后在代码中创建ObjectMapper对象。使用ObjectMapper对象,可以将Map转为Bean对象或者将Bean对象转为Map。

示例代码如下:

import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class MapToBeanDemo {
    public static void main(String[] args) throws IOException {
        Map<String, Object> map = new HashMap<>();
        map.put("id", 1001);
        map.put("name", "张三");
        map.put("age", 18);

        ObjectMapper objectMapper = new ObjectMapper();
        Person person = objectMapper.convertValue(map, Person.class);

        System.out.println(person.getId());
        System.out.println(person.getName());
        System.out.println(person.getAge());
    }
}

class Person {
    private int id;
    private String name;
    private int age;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

在上面的代码中,我们先创建了一个Map对象,然后创建了一个ObjectMapper对象。最后使用ObjectMapper.convertValue方法将Map转为Person对象。这里需要注意,Person类中的属性名要与Map中的key名相同,否则转换会失败。

2. 将Bean对象转为Map

使用ObjectMapper将Bean对象转为Map对象同样非常简单,只需要使用writeValueAsMap方法即可。示例代码如下:

import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.Map;

public class BeanToMapDemo {
    public static void main(String[] args) throws IOException {
        Person person = new Person();
        person.setId(1001);
        person.setName("张三");
        person.setAge(18);

        ObjectMapper objectMapper = new ObjectMapper();
        Map<String, Object> map = objectMapper.convertValue(person, Map.class);

        System.out.println(map.get("id"));
        System.out.println(map.get("name"));
        System.out.println(map.get("age"));
    }
}

class Person {
    private int id;
    private String name;
    private int age;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

在上面的代码中,我们先创建了一个Person对象,然后创建了一个ObjectMapper对象。最后使用ObjectMapper.writeValueAsMap方法将Person对象转为Map对象。

这里需要注意,如果Person类中有嵌套对象或者List等复杂对象,转换可能会存在问题。但是对于简单的Bean对象,使用Jackson实现Map与Bean互转是非常简单和方便的。

本文标题为:使用Jackson实现Map与Bean互转方式

基础教程推荐