1、pom.xml依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.10</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.0</version>
</dependency>
2、实体类
import lombok.Data;
@Data
public class Student {
// 唯一标识
private int id;
// 年龄
private int age;
// 姓名
private String name;
}
3、map转换为VO
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.it.vo.Student;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 转换实体
*/
public class Convert {
/**
* 将map转换为VO
*
* @param list 转换前map集合
* @return 转化后VO集合
*/
public List<Student> convertMapToVo(List<Map<String, Object>> list) {
ObjectMapper objectMapper = new ObjectMapper();
// 如果有字段在VO不存在,不报错
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
List<Student> stuList = list.stream()
.map(stuMap -> objectMapper.convertValue(stuMap, Student.class))
.collect(Collectors.toList());
return stuList;
}
public static void main(String [] args){
Convert test = new Convert();
Map<String, Object> map1 = new HashMap<>();
map1.put("id", 01);
map1.put("age", 18);
map1.put("name", "何刚");
Map<String, Object> map2 = new HashMap<>();
map2.put("id", 02);
map2.put("age", 23);
map2.put("name", "叶英");
List<Map<String, Object>> list = new ArrayList<>();
list.add(map1);
list.add(map2);
test.convertMapToVo(list);
}
}
544





