关于map结构转成bean的实现,寻求帮忙实现的大婶

时间:2021-10-28 19:08:32
关于map结构转成bean的实现,寻求帮忙实现的大婶实体类是这样结构,然后map结构是username=a,id=10,parent.username=b,parent.id=20....当然还有可能parent里面再嵌套多层bean,如何解释x.x.x.field的键值对填充到bean里,
现在方法是这样的
关于map结构转成bean的实现,寻求帮忙实现的大婶
map是数据键值对,class1是当前最外层对象的类型
请各位大婶帮忙填充下这个方法,万分感激

13 个解决方案

#1


干嘛要自己实现,用commons-beanUtils工具类,BeanUtils.populate(Object bean, Map map);直接就可以将map转成bean

#2


引用 1 楼 suciver 的回复:
干嘛要自己实现,用commons-beanUtils工具类,BeanUtils.populate(Object bean, Map map);直接就可以将map转成bean


感谢你的回答,我主要是想不依赖这现成的jar处理

#3


引用 2 楼 shadowsick 的回复:
感谢你的回答,我主要是想不依赖这现成的jar处理

楼主要自己实现你可以参考commons-beanUtils的源码,不仅是嵌套属性,还有集合数组的属性,这里还要涉及到map的值与属性的类型要进行转换

#4


map 取数据的话简单 username 重复,用 map<id, username> 搞定
不重复就 map<username,id>
再搞个 map<id, parentid>

如果对象就是
map<id, User>
取 User.Filed 调用查找 user.parent.....id 或者 username 就行了

#5


本帖最后由 fangmingshijie 于 2014-06-16 13:24:02 编辑
自己开发的话工作了比较大,而且不一定考虑全面,如果属性值又是复杂的bean,那就更难准确的去实现了。可以借助json去操作吧,都有toBean,fromObject之类的函数,工具类就是帮助你快速实现功能的。

#6


如果没有理解错误的话,是要把map的值对应到bean对象么?
如果是这样  反射好像可以实现

#7


lz不想用类库的话,要写的代码比较多。到最后真心会放弃的。

#8


引用 7 楼 shine333 的回复:
lz不想用类库的话,要写的代码比较多。到最后真心会放弃的。

关于map结构转成bean的实现,寻求帮忙实现的大婶
还没提供建议就开始打击了...

#9


引用 5 楼 fangmingshijie 的回复:
自己开发的话工作了比较大,而且不一定考虑全面,如果属性值又是复杂的bean,那就更难准确的去实现了。可以借助json去操作吧,都有toBean,fromObject之类的函数,工具类就是帮助你快速实现功能的。


嗯,确实咯...主要是自己闲的但疼,然后想搞搞而已,没神马意思

#10


protected <T> T getBean(Object o, Class<T> c) {
try {
T obj = c.newInstance();
BeanUtils.copyProperties(obj, o);
return obj;
} catch (Exception e) {
logger.error(e);
}
return null;
}

#11


关于map结构转成bean的实现,寻求帮忙实现的大婶
已经写好了...谢谢大家的支持,,,明早散分...

#12


楼主把写好的贴出来分享下,让我等菜鸟膜拜下啊啊。

#13


引用 12 楼 dokia123 的回复:
楼主把写好的贴出来分享下,让我等菜鸟膜拜下啊啊。


关于map结构转成bean的实现,寻求帮忙实现的大婶
到时我把项目发出来里面就用到了,到时慢慢看吧

#1


干嘛要自己实现,用commons-beanUtils工具类,BeanUtils.populate(Object bean, Map map);直接就可以将map转成bean

#2


引用 1 楼 suciver 的回复:
干嘛要自己实现,用commons-beanUtils工具类,BeanUtils.populate(Object bean, Map map);直接就可以将map转成bean


感谢你的回答,我主要是想不依赖这现成的jar处理

#3


引用 2 楼 shadowsick 的回复:
感谢你的回答,我主要是想不依赖这现成的jar处理

楼主要自己实现你可以参考commons-beanUtils的源码,不仅是嵌套属性,还有集合数组的属性,这里还要涉及到map的值与属性的类型要进行转换

#4


map 取数据的话简单 username 重复,用 map<id, username> 搞定
不重复就 map<username,id>
再搞个 map<id, parentid>

如果对象就是
map<id, User>
取 User.Filed 调用查找 user.parent.....id 或者 username 就行了

#5


本帖最后由 fangmingshijie 于 2014-06-16 13:24:02 编辑
自己开发的话工作了比较大,而且不一定考虑全面,如果属性值又是复杂的bean,那就更难准确的去实现了。可以借助json去操作吧,都有toBean,fromObject之类的函数,工具类就是帮助你快速实现功能的。

#6


如果没有理解错误的话,是要把map的值对应到bean对象么?
如果是这样  反射好像可以实现

#7


lz不想用类库的话,要写的代码比较多。到最后真心会放弃的。

#8


引用 7 楼 shine333 的回复:
lz不想用类库的话,要写的代码比较多。到最后真心会放弃的。

关于map结构转成bean的实现,寻求帮忙实现的大婶
还没提供建议就开始打击了...

#9


引用 5 楼 fangmingshijie 的回复:
自己开发的话工作了比较大,而且不一定考虑全面,如果属性值又是复杂的bean,那就更难准确的去实现了。可以借助json去操作吧,都有toBean,fromObject之类的函数,工具类就是帮助你快速实现功能的。


嗯,确实咯...主要是自己闲的但疼,然后想搞搞而已,没神马意思

#10


protected <T> T getBean(Object o, Class<T> c) {
try {
T obj = c.newInstance();
BeanUtils.copyProperties(obj, o);
return obj;
} catch (Exception e) {
logger.error(e);
}
return null;
}

#11


关于map结构转成bean的实现,寻求帮忙实现的大婶
已经写好了...谢谢大家的支持,,,明早散分...

#12


楼主把写好的贴出来分享下,让我等菜鸟膜拜下啊啊。

#13


引用 12 楼 dokia123 的回复:
楼主把写好的贴出来分享下,让我等菜鸟膜拜下啊啊。


关于map结构转成bean的实现,寻求帮忙实现的大婶
到时我把项目发出来里面就用到了,到时慢慢看吧