Java reflection implements javabeans to json instance code

  • 2020-04-01 02:34:16
  • OfStack

ObjectToJson. Java


package com.ObjectToJson;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Iterator;
public class ObjectToJson {

 
 public  static String ObjListToJson(ArrayList<?> list){
  StringBuilder build=new StringBuilder();
  //The iterator
  Iterator<?> iterator=list.iterator();
  build.append("[");
  String separate="";
  while(iterator.hasNext()){
   build.append(separate);
   //Object to json string
   String str=ObjToJson(iterator.next());
   build.append(str);
   separate=",";
  }
  build.append("]");
  return build.toString();
 }

 @SuppressWarnings("unchecked")
 public  static String ObjToJson(Object obj){
  StringBuilder build=new StringBuilder();
  build.append("{");
  @SuppressWarnings("rawtypes")
  Class cla=null;
  try {
   //Reflection loaded class
   cla=Class.forName(obj.getClass().getName());
  } catch (ClassNotFoundException e) {
   System.out.println(obj.getClass().toString().concat("  This class was not found "));
   e.printStackTrace();
   return null;
  }

  StringBuffer methodname=new StringBuffer();
  //Gets a variable for a Java class
  Field[] fields=cla.getDeclaredFields();
  String separate="";
  for(Field temp:fields){
   build.append(separate);
   build.append(""");
   build.append(temp.getName());
   build.append("":");

   methodname.append("get");
   methodname.append(temp.getName().substring(0,1).toUpperCase());
   methodname.append(temp.getName().substring(1));

   build.append(""");
   Method method=null;
   try {
    //Gets the Java get method
    method=cla.getMethod(methodname.toString());
   } catch (NoSuchMethodException | SecurityException e) {
    methodname.setLength(0);
    e.printStackTrace();
   }

   try {
    //Execute the get method to get the directness of the variable parameter.
    build.append(method.invoke(obj));
   } catch (IllegalAccessException e) {
    e.printStackTrace();
   } catch (IllegalArgumentException e) {
    e.printStackTrace();
   } catch (InvocationTargetException e) {
    e.printStackTrace();
   }
   build.append(""");
   methodname.setLength(0);
   separate=",";
  }

  build.append("}");
  return build.toString();
 }
}

  Test. The Java

 


 package com.test;
import java.util.ArrayList;
import com.ObjectToJson.ObjectToJson;
public class Test {
  public static void main(String[] args){
   //Data to construct
   ArrayList<User> list=getlist();
   //Data conversion
   String listjson=ObjectToJson.ObjListToJson((ArrayList<?>)list);
   System.out.println("{"data":"+listjson+"}");
  }

  public static ArrayList<User> getlist(){
   User user00=new User();
   user00.setUserage("27");
   user00.setUsername("smart");
   user00.setUsersex("man");

   User user01=new User();
   user01.setUserage("27");
   user01.setUsername("smart00");
   user01.setUsersex("man");

   ArrayList<User> list=new ArrayList<User>();
   list.add(user00);
   list.add(user01);

   return list;
  }
}
 

  User. Java

 


 package com.test;
public class User {
 private String username;
 private String usersex;
 private String userage;

 public String getUsername() {
  return username;
 }
 public void setUsername(String username) {
  this.username = username;
 }
 public String getUsersex() {
  return usersex;
 }
 public void setUsersex(String usersex) {
  this.usersex = usersex;
 }
 public String getUserage() {
  return userage;
 }
 public void setUserage(String userage) {
  this.userage = userage;
 }
 
}
 

  The test results

 


 {"data":[{"username":"smart","usersex":"man","userage":"27"},{"username":"smart00","usersex":"man","userage":"27"}]}
 


Related articles: