當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
将对象集合包装成JSON格式
生活随笔
收集整理的這篇文章主要介紹了
将对象集合包装成JSON格式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
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 屬性數(shù)組*/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);}
}
轉(zhuǎn)載于:https://blog.51cto.com/8659144/1394150
總結(jié)
以上是生活随笔為你收集整理的将对象集合包装成JSON格式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自己写的配筋的Android应用——RC
- 下一篇: idea将项目导出为jar包