
使用各种 json 工具先转字符串 json 再转 map 也可以,但是还得处理日期啊什么的这些特殊字符,而且这种方式也很难受啊。
有什么好用的工具吗?
1 jamesliu96 Jul 23, 2019 via Android 我以前是自己用反射写,也是苦于找不到能完成需求的工具 |
2 chendy Jul 23, 2019 好奇什么场景…会有这种需求 |
3 BBCCBB Jul 23, 2019 Jackson 就可以 |
4 BBCCBB Jul 23, 2019 有 convert 的 api. |
5 BBCCBB Jul 23, 2019 或者 dozer 也可以,不过 jackson 就可以满足需求,没必要引入 dozer |
6 qwerthhusn Jul 23, 2019 public static Map<String, Object> man(Object args) { return Arrays.stream(BeanUtils.getPropertyDescriptors(args.getClass())) .filter(pd -> !"class".equals(pd.getName())) .collect(HashMap::new, (map, pd) -> map.put(pd.getName(), ReflectionUtils.invokeMethod(pd.getReadMethod(), args)), HashMap::putAll); } 写的,很简单,前提是用了 JDK8 或者以上,用了 Spring |
7 cubecube Jul 23, 2019 via Android 没有太好的,都有很大的性能损耗。不在乎的话,json 就行。或者 beanutils 在乎的话,mapstruct |
8 passerbytiny Jul 23, 2019 需求场景几乎不存在,自己用反射写吧。 |
9 qwerthhusn Jul 23, 2019 @jamesliu96 6 楼满足你的需求 |
10 wysnylc Jul 23, 2019 最简单的方式,转成 json 字符串再反序列化 |
11 springmarker Jul 23, 2019 自己写反射咯,当然还得考虑父类的字段 |
12 leafShimple Jul 23, 2019 fastjson 直接用 |
13 letitbesqzr Jul 23, 2019 hutool 工具类中 BeanUtil.beanToMap 也是通过反射实现 |
14 cheng6563 Jul 23, 2019 via iPhone fastjson 直接转成 JSONObject,就是一个 map |
15 cheng6563 Jul 23, 2019 via iPhone fastjson 转了之后还有一堆入 getIntValue 之类的实用方法,真心觉得 fastjson 的 API 是最好用的了 |
16 CoderGeek Jul 23, 2019 CGLIB BeanMap |
17 cassyfar Jul 24, 2019 Jackson |
18 Variazioni Jul 24, 2019 fastjson 来回倒腾转一下就行。。。挺好用的。。 |
19 fff333 Jul 24, 2019 推荐 gson,fast 经常爆漏洞 |
20 HolmLoh Jul 24, 2019 via Android 反射吧,我都是写好抽象类,需要转 map 的话直接继承的 |
21 niaobulashi Jul 24, 2019 ``` /** * java bean 转 Map * @param bean * @param propNames 需要放到 map 中的属性名称 * @return */ public static Map<String,Object> beanToMap(Object bean, String...propNames) { Map<String,Object> rtn = new HashMap<String,Object>(); if(ArrayUtils.isEmpty(propNames)){ List<String> fieldNames = getFieldNames(bean.getClass()); for (String fieldName: fieldNames) { Object value = getProperty(bean, fieldName); rtn.put(fieldName, value); } }else{ for(String propName: propNames){ Object value = getProperty(bean, propName); rtn.put(propName, value); } } return rtn; } ``` |
22 niaobulashi Jul 24, 2019 emmmm,评论不能用 md 格式了 |
23 brust Jul 24, 2019 Gson,FastJSON |
24 zhybb2010 Jul 24, 2019 不要管性能,速度,拿起 fastjson 就是一套 comb。 |
25 wo0uewjuoi Jul 24, 2019 @fff333 前几个礼拜刚刚按要求升级 fast 版本防漏洞。。。 |
27 quadrapop Jul 24, 2019 6 楼写法挺大佬的 |
28 xuanbg Jul 24, 2019 用 json 序列化对象再反序列化成 Map 呀,还要什么自行车。。。话说我们对象复制、对象转换也是这样搞,爽歪歪 |
29 twoyuan Jul 24, 2019 Kotlin 的话就定义个扩展函数的事: fun Any.objToMap() = this::class.declaredMemberProperties.map { it.name to it.call(this) }.toMap() |
30 LeeSeoung Jul 24, 2019 使用 beanutils.describe |
31 abai Jul 24, 2019 BeanMap |