我想要类似
的输出 { Orga1: [ dep1, dep2], Orga2: [dep88, dep99], ...}
但是以某种方式我无法正确完成它。
我具有以下结构:
@JsonSerialize(using = OrganisationSerializer.class)
public class Organisation {
String name;
private HashMap<String, Department> lstDepartments = new HashMap<>();
public List<Department> getList() {
return lstDepartments.values().stream().collect(Collectors.toList());
}
}
带有嵌套类
@JsonSerialize(using = DepartmentSerializer.class)
public class Department {
String name;
HashMap<String, Role4Filter> lstRole = new HashMap<>();
public List<Role4Filter> getList() {
return lstRole.values().stream().collect(Collectors.toList());
}
...
}
主要问题是HashMap
需要转移到List
中,并需要进行序列化。但是以某种方式我无法正确转换为JSON。
我的方法
public class OrganisationSerializer extends JsonSerializer<Organisation> {
@Override
public void serialize(Organisation value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
gen.writeStartObject();
gen.writeArrayFieldStart(value.name);
for (final Department item : value.getList()) {
gen.writeObject(item);
}
gen.writeEndArray();
gen.writeEndObject();
}
失败,除了
com.fasterxml.jackson.databind.JsonMappingException: org..Department cannot be cast to org..Organisation
有什么想法吗?还是可能有其他注释(在序列化程序旁边?)