zoukankan      html  css  js  c++  java
  • String转json格式

    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    import java.util.ArrayList;
    import java.util.List;
    import com.jssh.bean.system.SysMenu;
    import com.jssh.bean.system.SysMenuId;
    public class JsonUtil<T> {
        /**
         * 将对象集合包装成JSON格式
         * @param list    对象集合
         * @return    JSON格式字符串
         */
        public  String setList2ToJson(List<T> list){
            StringBuffer msg=new StringBuffer("[");
            for(T obj:list){
                msg.append(setObject2Json(obj));
            }
            msg.deleteCharAt(msg.length()-1);
            msg.append(" ]");
            return msg.toString();
        }
        /**
         * 将类对象包装成JSON格式 : {'name':'a','value':'b'},
         * @param obj
         * @return    JSON格式字符串
         */
        public String setObject2Json(T obj){
            StringBuffer sb=new StringBuffer(" {'");
            Field[] fields=obj.getClass().getDeclaredFields();
            for(Field f:fields){
                String fieldName=f.getName();
                   
                //成员变量是否序列化
                if(!fieldName.equals("serialVersionUID")){
                    Object methodValue=getFieldValue(fieldName, obj);
                    sb.append(fieldName);
                       
                    Class<?> cls=f.getType();
                    /** 判断该成员变量是否自定义类对象 **/
                    if(!cls.getName().equals("java.lang.String") && !cls.getName().equals("java.lang.Integer")
                            && !cls.getName().equals("java.util.Date") && !cls.getName().equals("long")){
                        sb.append("':");
                        /** 返回对象 **/
                        T o=(T)getFieldValue(f.getName(),obj) ;
                        String str=setObject2Json(o);
                        sb.append(str);
                        sb.append(" '");
                    }else{
                        sb.append("':'");
                        sb.append(methodValue.toString());
                        sb.append("', '");      
                    }  
                }  
            }
            sb.delete(sb.length()-4,sb.length()-1);
            sb.append("},");
            return sb.toString();
        }
        /**
         * 获取类所有属性名
         * @param obj 对象
         * @return    属性数组
         */
        public String[] getFieldNames(T obj){
            Field[] fields=obj.getClass().getDeclaredFields();
            String[] fnames=new String[fields.length];
            for(int i=0;i<fnames.length;i++){
                fnames[i]=fields[i].getName();
            }
            return fnames;
        }
        /**
         * 获取属性返回值
         * @param methodName  
         * @param t
         * @return
         */
        public Object getFieldValue(String fieldName,T obj){
            /** 得到类属性值 **/
            Object methodValue=null;
            /** 组织GET方法名 **/
            String methodName="get"+fieldName.substring(01).toUpperCase()+fieldName.substring(1);
            try {
                Method method=obj.getClass().getMethod(methodName, null);
                methodValue=(Object) method.invoke(obj, null);
                if(methodValue==null) methodValue="";
            }catch(Exception e){
                e.printStackTrace();
            }
            return methodValue;
        }
           
        public static void main(String[] args) {
            SysMenu menu=new SysMenu();
            menu.setIcon("icon");
               
            SysMenuId id=new SysMenuId();
            id.setMenuModule("oooooooooooooooooooo");
            id.setMenuPrivilege("~~~~~~~~~~~~~~~~~~~~~~~~~");
            menu.setId(id);
            menu.setMenuName("xxxxxxxxxxxxxxxxxxxxxxx");
               
            SysMenu menu2=new SysMenu();
            menu2.setIcon("icon");
               
            SysMenuId id2=new SysMenuId();
            id2.setMenuModule("oooooooooooooooooooo");
            id2.setMenuPrivilege("~~~~~~~~~~~~~~~~~~~~~~~~~");
            menu2.setId(id2);
            menu2.setMenuName("xxxxxxxxxxxxxxxxxxxxxxx");
               
            List<SysMenu> list=new ArrayList<SysMenu>();
            list.add(menu);
            list.add(menu2);
               
            String str=new JsonUtil<SysMenu>().setList2ToJson(list);
            System.out.println(str);
        }
    }
  • 相关阅读:
    Shelve Instance 操作详解
    Rebuild Instance 操作详解
    Snapshot Instance 操作详解
    Nova Suspend/Rescue 操作详解
    Pause/Resume Instance 操作详解
    Terminate Instance 操作详解
    Nova reboot 和 lock 操作
    Start Instance 操作详解
    tar --help
    VIM标记 mark 详解
  • 原文地址:https://www.cnblogs.com/yiyunkeji/p/6606257.html
Copyright © 2011-2022 走看看