日期:2014-05-16 浏览次数:20390 次
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; }