如何映射 List列表>与推土机?
假设我有一个对象 Foo,它包含对对象 Bar 的引用列表:
public class Foo{
String fooStr;
List<Bar> barList;
//get/set barList/someStr go here
}
public class Bar {
String barStr;
}
使用 Dozer,假设 Bar 到 java.util.HashMap 是一个简单的映射,我如何将 Foo 的实例映射到 java.util 的实例。 HashMap 使得 Bar 的引用实例也映射到 java.util.HashMap? 也就是说,我希望映射的结果是一个带有键“barList”的 HashMap,其中包含一个实例数组列表>。此列表中的每个 HashMap 都应该是 Bar 到 HashMap 的映射。
例如,如果 Foo 持有对 Bar 而不是列表的单个引用,我会这样做:
<mapping>
<class-a>Foo</class-a>
<class-b>java.util.Map</class-b>
<field>
<a>bar</a>
<b key="bar">this</b>
<a-hint>Bar</a-hint>
<b-hint>java.util.Map</b-hint>
</field>
</mapping>
这将生成一个看起来像这样的哈希图(使用 JSON 对象来表示 HashMap):
{
"fooStr" : "value of fooStr",
{
"barStr" : "value of barStr"
}
}
但我想知道如何才能使用对 Bar 的引用列表表达对 HashMap 的转换,这样我就得到了:
{
"fooStr" : "value of fooStr",
"barList" : [{ "barStr" : "bar1" }, { "barStr" : "bar2" }, ...]
}
不使用自定义映射器的答案是首选,但我理解这是否是实现此行为的唯一方法。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您应该能够在自定义转换器中执行此操作:
警告:代码可能包含错误,但应该为您提供想法。
You should be able to do this in a custom converter:
Warning: Code may contain bugs, but should give you the idea.