Java uses reflection to convert pojo to json object

Recently, the Ethereum wallet project needs to interact with the front desk with json, write a tool class, and convert it into a json object through ordinary javaBean

 1 package util;
 2 
 3 import java.lang.reflect.Field;
 4 import java.lang.reflect.Method;
 5 import java.util.List;
 6 
 7 import org.web3j.protocol.core.methods.response.Transaction;
 8 
 9 import com.alibaba.fastjson.JSONArray;
10 import com.alibaba.fastjson.JSONObject;
11 
12 public class JSONUtil {
13     
14     /**
15      * 获取Transaction相应的JSON对象
16      * @param trans
17      * @return 
18       */ 
19      public  static JSONObject getTransJSON(Transaction trans) {
 20          JSONObject data = getJSON(Transaction. class , trans);
 21          return data;
 22      }
 23      
24      /** 
25       * Get transaction information list
 26       * @param transList
 27       * @return 
28       */ 
29      public  static JSONArray getTransListJSON(List<Transaction> transList) {
 30          JSONArray data = new JSONArray();
31         for(Transaction trans : transList) {
32             JSONObject transJson = getTransJSON(trans);
33             data.add(transJson);
34         }
35         return data;
36     }
37     
38     /**
39      * 获取json对象
40      * @param cls
41      * @param obj
42      * @return
43      */
44     public static JSONObject getJSON(Class<?> cls, Object obj) {
45         JSONObject json = new JSONObject();
46         Field[] fieldArray = cls.getDeclaredFields();
47         for(Field field : fieldArray) {
48             String fieldName = field.getName();
49             String methodName = "get" + fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1);
50             try {
51                 Method method = cls.getMethod(methodName);
52                 Object fieldObject = method.invoke(obj, new Object[0]); 
53                 String fieldValue = null; 
54                 if(fieldObject != null) {
55                     fieldValue = fieldObject.toString();
56                 } 
57                 json.put(fieldName, fieldValue);
58             } catch (Exception e) {
59                 e.printStackTrace();
60             }
61         }
62         return json;
63     }
64     
65 }

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325297856&siteId=291194637