/** * 将json,转为map * */ public static Map returnMapByObject(Object object){ Map maps = (Map) JSON.parse(returnJsonByObject(object)); return maps; } /** * 利用 Gson 转换 object(Entity) 序列化为json,字符串 * */ public static String returnJsonByObject(Object object){ Gson gson = new GsonBuilder().enableComplexMapKeySerialization().create(); String jsonStr=gson.toJson(object); return jsonStr; }
在项目里,遇到了需要将Object对象转为Map的场景,于是我引用了上面的方法进行测试。下面图片就是Object对象
在开始写的时候,没留意到时间那个格式问题,于是利用上面的Gson转成map后,直接成了“Nov 28, 2019 4:00:36 PM” 这种字符串格式,这使得我很烦恼啊,因为要执行sql操作,这种我找不到办法可以转成timestamp类型
于是有了下面这段代码
public static Map<String,Object> Obj2Map(Object obj) throws Exception{ Map<String,Object> map=new HashMap<String, Object>(); Field[] fields = obj.getClass().getDeclaredFields(); for(Field field:fields){ field.setAccessible(true); map.put(field.getName(), field.get(obj)); } return map; }
用这个,我可以将上面截图里的时间转为"2019-11-28T06:52:09.724+0000" 这种格式,虽然说这种格式看起来也很不常见,但是还是可以处理的。
处理为常见格式,见我另一篇随笔。