java利用反射将pojo转为json对象

Posted 光何

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java利用反射将pojo转为json对象相关的知识,希望对你有一定的参考价值。

最近做以太坊钱包项目需要与前台进行json交互,写一个工具类,经普通javaBean转为json对象

 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      * 获取交易信息列表
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 }

 

以上是关于java利用反射将pojo转为json对象的主要内容,如果未能解决你的问题,请参考以下文章

JAVA中如何将一个json形式的字符串转为json对象?

JAVA利用反射映射JSON对象为JavaBean

使用jackson将pojo(对象列表)转换为java中的json

利用Java反射实现JavaBean对象相同属性复制并初始化目标对象为空的属性的BeanUtils

java中把json怎么转换成数组

利用反射机制实现对象转Map集合