0
点赞
收藏
分享

微信扫一扫

java list<Map<String,Object>> 转成对应的对象

List<Map<String, Object>> 转换为对应的对象可以通过反射或手动映射来实现。以下是一个示例,演示如何使用手动映射的方式将 List<Map<String, Object>> 转换为对象列表。

示例代码

假设我们有一个简单的对象类 User

public class User {
    private String name;
    private int age;

    // Constructors, getters and setters

    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }

    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;
    }

    @Override
    public String toString() {
        return "User{name='" + name + "', age=" + age + '}';
    }
}

转换方法

下面是一个方法,将 List<Map<String, Object>> 转换为 List<User>

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class Converter {

    public static List<User> convertToUserList(List<Map<String, Object>> mapList) {
        List<User> userList = new ArrayList<>();
        
        for (Map<String, Object> map : mapList) {
            String name = (String) map.get("name");
            int age = (Integer) map.get("age");
            User user = new User(name, age);
            userList.add(user);
        }
        
        return userList;
    }
}

使用示例

下面是如何使用上述转换方法的示例:

import java.util.*;

public class Main {
    public static void main(String[] args) {
        // 模拟输入数据
        List<Map<String, Object>> mapList = new ArrayList<>();
        
        Map<String, Object> user1 = new HashMap<>();
        user1.put("name", "Alice");
        user1.put("age", 30);
        
        Map<String, Object> user2 = new HashMap<>();
        user2.put("name", "Bob");
        user2.put("age", 25);
        
        mapList.add(user1);
        mapList.add(user2);
        
        // 转换
        List<User> userList = Converter.convertToUserList(mapList);
        
        // 输出结果
        for (User user : userList) {
            System.out.println(user);
        }
    }
}

运行结果

运行上述代码将输出:

User{name='Alice', age=30}
User{name='Bob', age=25}

使用Hutool

使用 Hutool 库可以方便地将 List<Map<String, Object>> 转换为对应的对象。Hutool 提供了 BeanUtil 类,使用它的 mapToBean 方法可以实现该转换。

示例代码

假设我们有一个 User 类:

public class User {
    private String name;
    private int age;

    // Constructors, getters and setters

    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }

    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;
    }

    @Override
    public String toString() {
        return "User{name='" + name + "', age=" + age + '}';
    }
}

转换方法

使用 Hutool 进行转换的代码示例如下:

import cn.hutool.core.bean.BeanUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class Converter {
    public static List<User> convertToUserList(List<Map<String, Object>> mapList) {
        List<User> userList = new ArrayList<>();
        
        for (Map<String, Object> map : mapList) {
            User user = BeanUtil.mapToBean(map, User.class, true);
            userList.add(user);
        }
        
        return userList;
    }
}

使用示例

下面是如何使用上述转换方法的示例:

import java.util.*;

public class Main {
    public static void main(String[] args) {
        // 模拟输入数据
        List<Map<String, Object>> mapList = new ArrayList<>();
        
        Map<String, Object> user1 = new HashMap<>();
        user1.put("name", "Alice");
        user1.put("age", 30);
        
        Map<String, Object> user2 = new HashMap<>();
        user2.put("name", "Bob");
        user2.put("age", 25);
        
        mapList.add(user1);
        mapList.add(user2);
        
        // 转换
        List<User> userList = Converter.convertToUserList(mapList);
        
        // 输出结果
        for (User user : userList) {
            System.out.println(user);
        }
    }
}

运行结果

运行上述代码将输出:

User{name='Alice', age=30}
User{name='Bob', age=25}

注意事项

  • 确保在项目中引入了 Hutool 库,可以在 Maven 中添加以下依赖:

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.9</version> <!-- 请根据需要选择版本 -->
</dependency>

  • 使用 BeanUtil.mapToBean 时,可以设置第三个参数为 true,以忽略缺失的字段。
举报

相关推荐

0 条评论