import java.lang.reflect.Field;
 import java.lang.reflect.Method;import org.json.JSONObject;
/**
• 将对象转换为JSON对象
• 
• @param value
对象• @return JSONObject
 */
 public class test {
 public static void main(String[] args) {
 aaa aaa=new aaa();
 JSONObject obj=json(aaa);
 System.out.println(“obj:”+obj);
}
 public static JSONObject json(Object object) {
 JSONObject obj=new JSONObject();
 try {
 //获取实体类的所有属性,返回Field数组
 Field[] field = object.getClass().getDeclaredFields();
 String[] objectName = new String[field.length];
 String[] objectType = new String[field.length];
 for(int j=0 ; j<field.length ; j++){
 String type = field[j].getGenericType().toString();
 String name = field[j].getName();
 String mname = getMethodName(name);
 if (type.indexOf(“class”)>-1&&type.indexOf(“java.lang.String”)==-1 ) { //如果type是类类型,则前面包含"class ",后面跟类名
 System.out.println(“a”+name);
 try {
 Method m = object.getClass().getMethod(“get” + mname);
 Object obj1 = (Object) m.invoke(object); //调用getter方法获取属性值、获取值转换为对象
 if (obj1 != null) {
 Method m_id = obj1.getClass().getMethod(“getId”);
 Long l_id = (Long) m_id.invoke(obj1);
 if (l_id != null) {
 obj.put(name, l_id);
 }
 }else{
 obj.put(name, “”);
 }
 }
 catch (Exception e) {}
}
 		 if(type.indexOf("java.lang.String")>-1){   //如果type是类类型,则前面包含"class ",后面跟类名
                 try{
 					Method m = object.getClass().getMethod("get"+mname);
                     String value = (String) m.invoke(object);    //调用getter方法获取属性值
                    if(value!=null) {
                         obj.put(name, value);}else {
                         	obj.put(name, "");
                         }
                  
                 }catch(Exception e){
                 	
                 }
              }
 		  if(type.indexOf("int")>-1){   
                  Method m = object.getClass().getMethod("get"+name);
                  Integer value = (Integer) m.invoke(object);
                
                      obj.put(name, value);
                 
              }
 		 }
 	
 }catch(Exception e) {
 	e.printStackTrace();
 }
return obj;
 }
 private static String getMethodName(String fildeName) throws Exception{
 byte[] items = fildeName.getBytes();
 items[0] = (byte) ((char) items[0] - ‘a’ + ‘A’);
 return new String(items);
 }}
 class aaa{
 private int Id;
 private String name;
 private String password;
 private bbb bbb;
 public int getId() {
 return Id;
 }
 public void setId(int id) {
 Id = id;
 }
 public String getName() {
 return name;
 }
 public void setName(String name) {
this.name = name;
 }
 public String getPassword() {
 return password;
 }
 public void setPassword(String password) {
 this.password = password;
 }
 public bbb getBbb() {
 return bbb;
 }
 public void setBbb(bbb bbb) {
 this.bbb = bbb;
 }}
 class bbb{
 private int Id;
 private String name;
 private String password;
 public int getId() {
 return Id;
 }
 public void setId(int id) {
 Id = id;
 }
 public String getName() {
 return name;
 }
 public void setName(String name) {
this.name = name;
 }
 public String getPassword() {
 return password;
 }
 public void setPassword(String password) {
 this.password = password;
 }}