博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过java的反射机制实现Map、JavaBean、JSON的相互转换工具类
阅读量:6654 次
发布时间:2019-06-25

本文共 2761 字,大约阅读时间需要 9 分钟。

hot3.png

import java.lang.reflect.Method; import java.text.ParseException; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import org.json.JSONObject; /** *转换器 *1:将JavaBean 转换成Map、JSONObject *2:将JSONObject 转换成Map * * @author xxx */ public class BeanConverter {     /**      * 将javaBean转换成Map      *      * @param javaBean javaBean      * @return Map对象      */     public static Map
toMap(Object javaBean) { Map
result = new HashMap
(); Method[] methods = javaBean.getClass().getDeclaredMethods(); for (Method method : methods) { try { if (method.getName().startsWith("get")) { String field = method.getName(); field = field.substring(field.indexOf("get") + 3); field = field.toLowerCase().charAt(0) + field.substring(1); Object value = method.invoke(javaBean, (Object[])null); result.put(field, null == value ? "" : value.toString()); } } catch (Exception e) { } } return result; } /** * 将json对象转换成Map * * @param jsonObject json对象 * @return Map对象 */ @SuppressWarnings("unchecked") public static Map
toMap(JSONObject jsonObject) { Map
result = new HashMap
(); Iterator
iterator = jsonObject.keys(); String key = null; String value = null; while (iterator.hasNext()) { key = iterator.next(); value = jsonObject.getString(key); result.put(key, value); } return result; } /** * 将javaBean转换成JSONObject * * @param bean javaBean * @return json对象 */ public static JSONObject toJSON(Object bean) { return new JSONObject(toMap(bean)); } /** * 将map转换成Javabean * * @param javabean javaBean * @param data map数据 */ public static Object toJavaBean(Object javabean, Map
data) { Method[] methods = javabean.getClass().getDeclaredMethods(); for (Method method : methods) { try { if (method.getName().startsWith("set")) { String field = method.getName(); //核心就是反射 field = field.substring(field.indexOf("set") + 3); field = field.toLowerCase().charAt(0) + field.substring(1); method.invoke(javabean, new Object[] { data.get(field) }); } } catch (Exception e) { } } return javabean; } /** * 将javaBean转换成JSONObject * * @param bean javaBean * @return json对象 * @throws ParseException json解析异常 */ public static void toJavaBean(Object javabean, String data) throws ParseException { JSONObject jsonObject = new JSONObject(data); Map
datas = toMap(jsonObject); toJavaBean(javabean, datas); }

转载于:https://my.oschina.net/sfshine/blog/485504

你可能感兴趣的文章
Vue项目中的mock数据
查看>>
关于Scott用户
查看>>
web.py框架之i18n支持
查看>>
PHP cURL
查看>>
Python 5 面向对象进阶
查看>>
HTML列表
查看>>
判断字符串a和b是否互为旋转词
查看>>
Android开发之炫酷MD风格
查看>>
eclipse生成spring boot jar包
查看>>
jetty java文件无法删除 java文件占用 delete无效 运行时锁定静态资源的解决方法...
查看>>
Centos7安装Python3.7
查看>>
Android 天气曲线
查看>>
机器学习入门04 - 使用TensorFlow的起始步骤 (First Steps with TensorFlow)
查看>>
Github的gitignore
查看>>
Libvirt中windows虚拟机的动态内存管理
查看>>
Android动态加入控件约束位置
查看>>
sicp第二章部分习题解答
查看>>
2013 HTML5 峰会,HTML5 守望者的盛宴
查看>>
PD的CDM模型中的三种实体关系
查看>>
All you should know about NUMA in VMware!
查看>>