当前位置: 首页 > 知识库问答 >
问题:

在java中将映射转换为列表

邓光耀
2023-03-14

我有一张这样的地图<代码>地图

public class Student {
private long student_id;
private String name;
private Double salary;

//getter and setters
}

我使用了对象映射器,但它不工作,因为映射在我的结构中包含另一个映射。

 final ObjectMapper mapper = new ObjectMapper(); // jackson's objectmapper
 final List<Student> studentList = mapper.convertValue(map, Student.class);

共有1个答案

空佐
2023-03-14

利用杰克逊来做这件事可能是一种过度杀戮,如果不是的话,它甚至不是一个解决方案

假设您使用的是Java8或更高版本,并且每个学生id至少有一个条目,那么下面的操作应该可以。

return input.entrySet().stream().map(entry-> {
    Student s = new Student();
    s.setStudent_id(entry.getKey());
    Map.Entry<String,Double> nameAndSalary = entry.getValue().entrySet().iterator().next();
    s.setName(nameAndSalary.getKey());
    s.setSalary(nameAndSalary.getValue());
    return s;
}).collect(Collectors.toList());

如果每个学生id不需要输入姓名和工资,则应使用空/空检查进行相应处理。

 类似资料:
  • 我是Mapstruct的新手。我试图将列表转换为地图,我在网上搜索了很多,我有一些解决方案,比如它还没有在mapstruct中实现。如果有人能提供一些替代解决方案,我将很高兴。所有我希望转换映射如下: 现在是否可以使用MapStruct来实现?

  • 假设我有一个名为student的对象列表。对象Student的定义如下 在学生列表中,可以有多个具有相同studentName但不同CourseTaking的学生对象。现在我想把学生名单变成一张studentName和courseTaking的地图,如下所示 关键是studentName,而值是将同一学生的所有课程设置放在一起作为一个集合。我如何使用stream()&collection()来实现

  • 我有下面的pojo 此employee类用于从mybatis orm获取对象列表(list)。 mybatis将输出作为列表返回,因为mybatis不支持将Map作为返回类型 我必须把它转换成地图 我尝试了下面的方法,但没有成功,因为它需要getName()和getId()方法 请告知是否有一种方法可以在不修改员工pojo的情况下使用stream实现。 注意:我知道我们可以使用ofr或for ea

  • 本文向大家介绍Java 将Map映射转换为 List,包括了Java 将Map映射转换为 List的使用技巧和注意事项,需要的朋友参考一下 首先,让我们创建一个Java Map并初始化- 现在,将Map转换为List- 示例 以下是在Java中将Maps转换为List的程序- 输出结果

  • 我一直在研究Jackson,但似乎必须将映射转换为JSON,然后将生成的JSON转换为POJO。 有没有一种方法可以将地图直接转换成POJO?

  • 我有以下代码,希望使用Java8将列表转换为。 当我尝试将列表中的单个值映射为映射的键时,我得到了一个错误。