import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import com.jssh.bean.system.SysMenu;
import com.jssh.bean.system.SysMenuId;
public class JsonUtil<T> {/*** 将对象集合包装成JSON格式* @param list 对象集合* @return JSON格式字符串*/public String setList2ToJson(List<T> list){StringBuffer msg=new StringBuffer("[");for(T obj:list){msg.append(setObject2Json(obj));}msg.deleteCharAt(msg.length()-1);msg.append("\n]");return msg.toString();}/*** 将类对象包装成JSON格式 : {'name':'a','value':'b'},* @param obj* @return JSON格式字符串*/public String setObject2Json(T obj){StringBuffer sb=new StringBuffer("\n{'");Field[] fields=obj.getClass().getDeclaredFields();for(Field f:fields){String fieldName=f.getName();//成员变量是否序列化if(!fieldName.equals("serialVersionUID")){Object methodValue=getFieldValue(fieldName, obj);sb.append(fieldName);Class<?> cls=f.getType();/** 判断该成员变量是否自定义类对象 **/if(!cls.getName().equals("java.lang.String") && !cls.getName().equals("java.lang.Integer")&& !cls.getName().equals("java.util.Date") && !cls.getName().equals("long")){sb.append("':");/** 返回对象 **/T o=(T)getFieldValue(f.getName(),obj) ;String str=setObject2Json(o);sb.append(str);sb.append("\n'");}else{sb.append("':'");sb.append(methodValue.toString());sb.append("',\n'"); } } }sb.delete(sb.length()-4,sb.length()-1);sb.append("},");return sb.toString();}/*** 获取类所有属性名* @param obj 对象* @return 属性数组*/public String[] getFieldNames(T obj){Field[] fields=obj.getClass().getDeclaredFields();String[] fnames=new String[fields.length];for(int i=0;i<fnames.length;i++){fnames[i]=fields[i].getName();}return fnames;}/*** 获取属性返回值* @param methodName * @param t* @return*/public Object getFieldValue(String fieldName,T obj){/** 得到类属性值 **/Object methodValue=null;/** 组织GET方法名 **/String methodName="get"+fieldName.substring(0, 1).toUpperCase()+fieldName.substring(1);try {Method method=obj.getClass().getMethod(methodName, null);methodValue=(Object) method.invoke(obj, null);if(methodValue==null) methodValue="";}catch(Exception e){e.printStackTrace();}return methodValue;}public static void main(String[] args) {SysMenu menu=new SysMenu();menu.setIcon("icon");SysMenuId id=new SysMenuId();id.setMenuModule("oooooooooooooooooooo");id.setMenuPrivilege("~~~~~~~~~~~~~~~~~~~~~~~~~");menu.setId(id);menu.setMenuName("xxxxxxxxxxxxxxxxxxxxxxx");SysMenu menu2=new SysMenu();menu2.setIcon("icon");SysMenuId id2=new SysMenuId();id2.setMenuModule("oooooooooooooooooooo");id2.setMenuPrivilege("~~~~~~~~~~~~~~~~~~~~~~~~~");menu2.setId(id2);menu2.setMenuName("xxxxxxxxxxxxxxxxxxxxxxx");List<SysMenu> list=new ArrayList<SysMenu>();list.add(menu);list.add(menu2);String str=new JsonUtil<SysMenu>().setList2ToJson(list);System.out.println(str);}
}
转载于:https://blog.51cto.com/8659144/1394150