首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

简略java转json

2012-12-28 
简单java转jsonpackage org.msf.jsonimport java.beans.BeanInfoimport java.beans.IntrospectionExcept

简单java转json

package org.msf.json;import java.beans.BeanInfo;import java.beans.IntrospectionException;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.lang.reflect.Array;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.HashMap;import java.util.List;/** *@author masf *@date Jan 15, 2010 */public class JSONHelp {                public static void main(String[] args) throws Exception{                List list = new ArrayList();                list.add("fdsfd");                list.add(3234);                /*String aa[] = {"11","22",null,"33"};                aa = (String[]) Array.newInstance(String.class, 3);                                for(String a:aa){                         System.out.println(a+Array.getLength(aa));                         Array.getLength(aa);                                         }*/                Student student = new Student("号楼",23,new HashMap(),list,new Student("",33,new HashMap(),list,null));                System.out.println(                                new JSONHelp().getJson(student)                );                                //for(Field field : student.getClass().getDeclaredFields()){                        //System.out.println(Introspector.decapitalize("getname"));                //}                        }        /**         * 目前方法只支持基本数据类型 不包括Map Set List等         * @param obj         * @return         * @throws IntrospectionException         * @throws IllegalArgumentException         * @throws IllegalAccessException         * @throws InvocationTargetException         * @author masf         */        public String getJson(Object obj) throws Exception{                if(obj == null)                         throw new RuntimeException("javabean实例为空");                                BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());                //获得bean的属性集合                 PropertyDescriptor[] beanPropertys = beanInfo.getPropertyDescriptors();                StringBuffer str = new StringBuffer();                str.append("{");                for(PropertyDescriptor beanProperty : beanPropertys){                        Method method = beanProperty.getReadMethod();                        if(beanProperty.getName().equals("class"))                                 continue;                                                Object returnType = method.invoke(obj);                        str.append("'"+beanProperty.getName()+"'");                        //数字不加单引号                        if(Number.class.isInstance(returnType)){                                str.append(":").append(returnType).append(",");                                continue;                        }                                                                str.append(":'").append(returnType).append("',");                }                str.deleteCharAt(str.length()-1).append("}");                return str.toString();        }        }/////////////////////////////////////////////////////////////////////////////////package org.msf.json;import java.util.List;import java.util.Map;/** *@author masf *@date Jan 15, 2010 */public class Student {        private String name;        private int sex;        @SuppressWarnings("unchecked")        private Map map;        private Student student;        @SuppressWarnings("unchecked")        private List list;                @SuppressWarnings("unchecked")        public Student(String name , int sex,Map map,List list,Student student){                this.name = name;                this.sex = sex;                this.map = map;                this.list = list;                this.student = student;        }                public String getName() {                return name;        }        public void setName(String name) {                this.name = name;        }        public int getSex() {                return sex;        }        public void setSex(int sex) {                this.sex = sex;        }        public Map getMap() {                return map;        }        public void setMap(Map map) {                this.map = map;        }        public Student getStudent() {                return student;        }        public void setStudent(Student student) {                this.student = student;        }        public List getList() {                return list;        }        public void setList(List list) {                this.list = list;        }}

热点排行