我正在开发一个项目,我需要从层次结构Map<String, Object>中映射,其中第二个参数应该是a String或Map<String, Object>.到目前为止,ModelMapper工作得很棒,但我遇到了特定转换的问题.鉴于以下内容,其中Model只是一个标记界面:
class Client implements Model {
String firstName;
String lastName;
List<Organization> organizations = new ArrayList<>();
}
Run Code Online (Sandbox Code Playgroud)
假设Organization实现了我的标记界面,Model但是任意结构,我希望能够将以下内容映射到Client:
Map source = new HashMap(){{
put("firstName", "John"),
put("lastName", "Smith"),
put("organizations", new HashMap(){{
put("0", new HashMap(){{
put("id", "1234");
}});
put("abc", new HashMap(){{
put("id", "5678");
}});
}});
}};
Run Code Online (Sandbox Code Playgroud)
总结:在推入组织属性时,我如何让ModelMapper删除映射键并仅使用值列表?如果做不到这一点,组织的财产就会变空.你可能认为我有充分的理由希望这样做,而且是一个糟糕的例子!
提前感谢您的意见!
编辑
我试图建立一个Converter将管理从转换Map到Collection<Model>无果.鉴于:
new Converter<Map, Collection<DataTransportObject>>() {
@Override
public Set convert(MappingContext<Map, Collection<DataTransportObject>> context) { …Run Code Online (Sandbox Code Playgroud)