zoukankan      html  css  js  c++  java
  • 将bean转换成键值列表

    日常开发中在进行接口对接的数据传输时,有一种场景是将bean转成jsonString,这里可以将bean转换成Map再转成jsonString。

    工具类如下:

    public static String toJSONString(Object obj) {
            JSONObject json = new JSONObject();
            try {
                Map<String, String> map = beanToMap(obj);
                for (Map.Entry<String, String> entry : map.entrySet()) {
                    json.put(entry.getKey(), entry.getValue());
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
            return json.toString();
        }
    
        /**
         * 将bean转换成Map
         * 
         * @param bean
         * @return
         */
        public static Map<String, String> beanToMap(Object bean) {
            if (bean == null) {
                return null;
            }
    
            Map<String, String> parameters = new HashMap<String, String>();
    
            if (null != parameters) {
                // 取得bean所有public 方法
                Method[] Methods = bean.getClass().getMethods();
                for (Method method : Methods) {
                    if (method != null && method.getName().startsWith("get")
                            && !method.getName().startsWith("getClass")) {
                        // 得到属性的类名
                        String value = "";
                        // 得到属性值
                        try {
                            String className = method.getReturnType()
                                    .getSimpleName();
                            if (className.equalsIgnoreCase("int")) {
                                int val = 0;
                                try {
                                    val = (Integer) method.invoke(bean);
                                } catch (InvocationTargetException e) {
                                    e.printStackTrace();
                                }
                                value = String.valueOf(val);
                            } else if (className.equalsIgnoreCase("String")) {
                                try {
                                    value = (String) method.invoke(bean);
                                } catch (InvocationTargetException e) {
                                    e.printStackTrace();
                                }
                            }
                            if (value != null && value != "") {
                                // 添加参数
                                // 将方法名称转化为id,去除get,将方法首字母改为小写
                                String param = method.getName().replaceFirst("get",
                                        "");
                                if (param.length() > 0) {
                                    String first = String.valueOf(param.charAt(0))
                                            .toLowerCase();
                                    param = first + param.substring(1);
                                }
                                parameters.put(param, value);
                            }
                        } catch (IllegalArgumentException e) {
                            e.printStackTrace();
                        } catch (IllegalAccessException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
    
            return parameters;
        }
  • 相关阅读:
    5个最好用AngularJS构建应用程序框架
    5款最好的免费在线网站CSS验证器
    10款最优秀的开源移动开发工具
    10个最好的免费PS图象处理软件方案
    10个基本的HTML5动画工具设计
    6款最好的免费在线二维码生成器
    Redis配置文件参数说明
    Redis学习手册(主从复制)
    java.lang.OutOfMemoryError: PermGen space PermGen space & java.lang.OutOfMemoryError: Java heap space Heap siz
    TNSNAMES.ORA 配置
  • 原文地址:https://www.cnblogs.com/mark8080/p/6247351.html
Copyright © 2011-2022 走看看