小编iro*_*haw的帖子

如何从Map映射到List

我正在开发一个项目,我需要从层次结构Map<String, Object>中映射,其中第二个参数应该是a StringMap<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将管理从转换MapCollection<Model>无果.鉴于:

new Converter<Map, Collection<DataTransportObject>>() {
    @Override
    public Set convert(MappingContext<Map, Collection<DataTransportObject>> context) { …
Run Code Online (Sandbox Code Playgroud)

java modelmapper

5
推荐指数
1
解决办法
1488
查看次数

标签 统计

java ×1

modelmapper ×1