最近在公司工作需要实现一个工具实现一个pojo转为fastjson对象的通用工具,直接上源码
/**
*
*通用的pojo转为Json对象的方法
*
* @author ZFX
* @date2019/8/17 9:59
*/
import com.alibaba.fastjson.JSONObject;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class JSONUtils {
/**
* 将object对象转为相应的JSON对象,可根据实际需求转换Object
*
* @param object
* @return
*/
public static JSONObject getTransJSON(Object object) {
JSONObject data = getJSON(Object.class, object);
return data;
}
/**
* 获取json对象
*
* @param cls
* @param obj
* @return
*/
public static JSONObject getJSON(Class<?> cls, Object obj) {
JSONObject json = new JSONObject();
Field[] fieldArray = cls.getDeclaredFields();
for (Field field : fieldArray) {
String fieldName = field.getName();
String methodName = "get" + fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1);
try {
Method method = cls.getMethod(methodName);
Object fieldObject = method.invoke(obj, new Object[0]);
String fieldValue = null;
if (fieldObject != null) {
fieldValue = fieldObject.toString();
}
json.put(fieldName, fieldValue);
} catch (Exception e) {
e.printStackTrace();
}
}
return json;
}
}