我有一張這樣的地圖。Map<Long,Map<String, Double>>.我想將此地圖轉換為學生串列。我的學生課是:
public class Student {
private long student_id;
private String name;
private Double salary;
//getter and setters
}
我使用了物件映射器,但它不起作用,因為 map 在我的結構中包含另一個映射。
final ObjectMapper mapper = new ObjectMapper(); // jackson's objectmapper
final List<Student> studentList = mapper.convertValue(map, Student.class);
uj5u.com熱心網友回復:
使用杰克遜來做到這一點可能是一種矯枉過正,如果不是它甚至不是一個解決方案。
假設您使用的是 java 8 或更高版本,并且每個 student_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());
如果每個 student_id 不需要有姓名和薪水的條目,您應該使用空/空檢查相應地處理它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/396517.html
下一篇:如何過濾字串串列?
