package net.zchargesystem.util;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import net.zchargesystem.entity.User;
/**
* @author dewei
* @date 2011 Aug 23th PM15:41
* 传递对象反射生成Json格式字符串
* */
public class ObjectToJson {
/**
* 用反射生成Json格式字符串
* @param object 任意类型对象
* @return 拼接好的StringBuffer对象
* */
public static StringBuffer ToJson(Object object) throws ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException{
Class clazz = object.getClass();
Field[] fields = clazz.getDeclaredFields();
StringBuffer sb = new StringBuffer("{[");
for (Field field : fields) {
String fieldName = field.getName();
Method method = clazz.getMethod("get" + change(fieldName), null);
Object property = method.invoke(object, null);
if(property == null){
sb.append("\"\",");
}else{
sb.append("\"" + property + "\",");
}
}
sb.append("]}");
return sb.replace(sb.lastIndexOf(","),sb.lastIndexOf(",") + 1 ,"");
}
/**
* @param src
* 源字符串
* @return 字符串,将src的第一个字母转换为大写,src为空时返回null
*/
public static String change(String src) {
if (src != null) {
StringBuffer sb = new StringBuffer(src);
sb.setCharAt(0, Character.toUpperCase(sb.charAt(0)));
return sb.toString();
} else {
return null;
}
}
public static void main(String[] args) throws ClassNotFoundException, SecurityException, IllegalArgumentException, NoSuchMethodException, IllegalAccessException, InvocationTargetException {
User u = new User();
u.setId(1);
u.setName("aaa");
u.setPassword("111");
u.setLoginName("login");
System.out.println(ToJson(u));
}
}
利用反射遍历对象属性输出json字符串
最新推荐文章于 2022-11-16 16:39:30 发布