亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > AJAX > 正文

使用Ajax或Easyui等框架時的Json-lib的處理方案

2024-09-01 08:30:47
字體:
來源:轉載
供稿:網友

無論是使用ajax還是使用easyui等框架,后臺向前臺輸出數據時都涉及到json處理的問題,這里介紹兩種處理方法,第一種是手動配置json的處理方法,另一種使用json-lib的處理方案。普通手動配置方法比較笨拙,每次需要根據字段名逐個配置,因此也無法再其他對象上使用,降低了代碼的重用性,使用json-lib工具可以實現自動處理,針對不同的對象又不同的處理措施,大大提高了處理效率和代碼的重用性,以下分別根據案例介紹兩種方法的過程:

方法一:普通方法,通過手動配置轉型的過程,以easyui的請求方法為例,前臺通過dategrid向后臺請求用戶列表數據,數據中存在普通字段(int、String)數據,也有日期(date)數據,

jsp頁面:

<table id="dg" title="用戶管理" class="easyui-datagrid" fitColumns="true" pagination="true" rownumbers="true" url="${pageContext.request.contextPath}/user_list.action" fit="true" toolbar="#tb"> <thead> <tr>  <th field="cb" checkbox="true" align="center"></th>  <th field="id" width="50" align="center">編號</th>  <th field="trueName" width="80" align="center">真實姓名</th>  <th field="userName" width="80" align="center">用戶名</th>  <th field="password" width="80" align="center">密碼</th>  <th field="sex" width="50" align="center">性別</th>  <th field="birthday" width="100" align="center">出生日期</th>  <th field="identityId" width="130" align="center">身份證</th>  <th field="email" width="120" align="center">郵件</th>  <th field="mobile" width="80" align="center">聯系電話</th>  <th field="address" width="100" align="center">家庭地址</th> </tr> </thead></table>

*******************************************************************************************************************************************************

action層:

public void list()throws Exception{ PageBean pageBean=new PageBean(Integer.parseInt(page), Integer.parseInt(rows)); List<User> userList=userService.findUserList(s_user, pageBean); Long total=userService.getUserCount(s_user); JSONObject result=new JSONObject(); JSONArray jsonArray=JsonUtil.formatUserListToJsonArray(userList); //easyui接收屬性為rows(數據內容)和total(總記錄數) result.put("rows", jsonArray); result.put("total", total); //獲取response對象 ResponseUtil.write(ServletActionContext.getResponse(), result);}

*******************************************************************************************************************************************************

util工具:

public class JsonUtil {  /**   * 將List結果集轉化為JsonArray   * @param gradeService   * @param stuList   * @return   * @throws Exception   */  public static JSONArray formatUserListToJsonArray(List<User> userList)throws Exception{    JSONArray array=new JSONArray();    for(int i=0;i<userList.size();i++){      User user=userList.get(i);      JSONObject jsonObject=new JSONObject();       jsonObject.put("userName", user.getUserName());   //需手動逐個配置json的key-code      jsonObject.put("password", user.getPassword());      jsonObject.put("trueName", user.getTrueName());      jsonObject.put("sex", user.getSex());      jsonObject.put("birthday", DateUtil.formatDate((user.getBirthday()), "yyyy-MM-dd"));      jsonObject.put("identityId", user.getIdentityId());      jsonObject.put("email", user.getEmail());      jsonObject.put("mobile", user.getMobile());      jsonObject.put("address", user.getAddress());      jsonObject.put("id", user.getId());      array.add(jsonObject);    }    return array;  }}

方法二:使用jsonLib工具完成處理,以easyui的請求方法為例,前臺通過dategrid向后臺請求商品列表數據,數據中存在普通字段(int、String)數據,也有日期(date)數據,同時商品對象(Product)還級聯了類別對象(ProductType)

jsp頁面:

<table id="dg" title="商品管理" class="easyui-datagrid"fitColumns="true" pagination="true" rownumbers="true" url="${pageContext.request.contextPath}/product_list.action" fit="true" toolbar="#tb"> <thead> <tr> <th field="cb" checkbox="true" align="center"></th> <th field="id" width="50" align="center" hidden="true">編號</th> <th field="proPic" width="60" align="center" formatter="formatProPic">商品圖片</th> <th field="name" width="150" align="center">商品名稱</th> <th field="price" width="50" align="center">價格</th> <th field="stock" width="50" align="center">庫存</th> <th field="smallType.id" width="100" align="center" formatter="formatTypeId" hidden="true">所屬商品類id</th> <th field="smallType.name" width="100" align="center" formatter="formatTypeName">所屬商品類</th> <th field="description" width="50" align="center" hidden="true">描述</th> <th field="hotTime" width="50" align="center" hidden="true">上架時間</th> </tr> </thead></table>

*******************************************************************************************************************************************************

action層:

public void list() throws Exception{ PageBean pageBean=new PageBean(Integer.parseInt(page),Integer.parseInt(rows)); List<Product> productList=productService.getProducts(s_product, pageBean); long total=productService.getProductCount(s_product);  //使用jsonLib工具將list轉為json JsonConfig jsonConfig=new JsonConfig(); jsonConfig.setExcludes(new String[]{"orderProductList"}); //非字符串對象不予處理 jsonConfig.registerJsonValueProcessor(java.util.Date.class, new DateJsonValueProcessor("yyyy-MM-dd")); //處理日期 jsonConfig.registerJsonValueProcessor(ProductType.class,new ObjectJsonValueProcessor(new String[]{"id","name"}, ProductType.class)); //處理類別list對象 JSONArray rows=JSONArray.fromObject(productList, jsonConfig); JSONObject result=new JSONObject(); result.put("rows", rows); result.put("total", total); ResponseUtil.write(ServletActionContext.getResponse(), result);}

*******************************************************************************************************************************************************

util工具:

/** * json-lib 日期處理類 * @author Administrator * */public class DateJsonValueProcessor implements JsonValueProcessor{ private String format;    public DateJsonValueProcessor(String format){     this.format = format;   }  public Object processArrayValue(Object value, JsonConfig jsonConfig) { // TODO Auto-generated method stub return null; } public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) { if(value == null)     {       return "";     }     if(value instanceof java.sql.Timestamp)     {       String str = new SimpleDateFormat(format).format((java.sql.Timestamp)value);       return str;     }     if (value instanceof java.util.Date)     {       String str = new SimpleDateFormat(format).format((java.util.Date) value);       return str;     }     return value.toString();  }}/** * 解決對象級聯問題 * @author Administrator * */public class ObjectJsonValueProcessor implements JsonValueProcessor{ /** * 保留的字段 */ private String[] properties;   /** * 處理類型 */ private Class<?> clazz;   /** * 構造方法  * @param properties * @param clazz */ public ObjectJsonValueProcessor(String[] properties,Class<?> clazz){     this.properties = properties;     this.clazz =clazz;   }   public Object processArrayValue(Object arg0, JsonConfig arg1) { // TODO Auto-generated method stub return null; } public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) { PropertyDescriptor pd = null;     Method method = null;     StringBuffer json = new StringBuffer("{");     try{       for(int i=0;i<properties.length;i++){         pd = new PropertyDescriptor(properties[i], clazz);         method = pd.getReadMethod();         String v = String.valueOf(method.invoke(value));         json.append("'"+properties[i]+"':'"+v+"'");         json.append(i != properties.length-1?",":"");       }       json.append("}");     }catch (Exception e) {       e.printStackTrace();     }     return JSONObject.fromObject(json.toString());  }}

以上所述是小編給大家介紹的使用Ajax或Easyui等框架時的Json-lib的處理方案,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
美女国内精品自产拍在线播放| 欧美日韩美女在线观看| 日本中文字幕久久看| 国产一区香蕉久久| 亚洲色图综合网| 欧美在线视频观看| 中文字幕精品一区久久久久| 欧美午夜久久久| 亚洲视屏在线播放| 欧美成人手机在线| 国产一区二区欧美日韩| 久久天天躁日日躁| 九九九久久久久久| 日韩电影免费在线观看| 亚洲国产精彩中文乱码av| 亚洲a一级视频| 欧美裸体男粗大视频在线观看| 久久国内精品一国内精品| 亚洲男人天堂九九视频| 日韩在线观看高清| y97精品国产97久久久久久| 亚洲美女又黄又爽在线观看| 伊人伊成久久人综合网小说| 亚洲欧美日韩在线高清直播| 亚洲18私人小影院| 亚洲精品中文字幕女同| 色综合伊人色综合网站| 亚洲国产高清福利视频| 亚洲伊人一本大道中文字幕| 午夜精品三级视频福利| 精品国产乱码久久久久久虫虫漫画| 国产美女久久精品| 久久久久久九九九| 欧美猛男性生活免费| 亚洲人线精品午夜| 日韩中文在线不卡| 日韩精品欧美激情| 中文字幕不卡av| 欧美裸体xxxxx| 久久青草福利网站| 日韩在线中文字幕| 91精品国产高清久久久久久91| 91老司机在线| 国产精品综合久久久| 欧美一级视频一区二区| 一区二区三区动漫| 欧美有码在线观看| 欧美激情亚洲一区| 91黄色8090| 97在线视频免费看| 日韩a**站在线观看| 欧美午夜激情在线| 欧美色欧美亚洲高清在线视频| 欧美性猛交xxxx乱大交3| 欧美黑人又粗大| 久久精品99久久久久久久久| 欧美理论片在线观看| 欧美高清激情视频| 亚洲国产日韩欧美在线图片| 日韩不卡中文字幕| 7m精品福利视频导航| 欧美日韩国产精品一区| 久久精品夜夜夜夜夜久久| 理论片在线不卡免费观看| 亚洲欧美激情一区| 亚洲国产精品成人一区二区| 亚洲aa中文字幕| 久久久久久久久久婷婷| 久久人人爽人人爽人人片av高请| 国产午夜一区二区| 亚洲欧美日韩一区二区三区在线| 欧美极品xxxx| 国产69精品久久久久久| 黑丝美女久久久| 97人人模人人爽人人喊中文字| 国产一区二区三区精品久久久| 91夜夜未满十八勿入爽爽影院| 国产精品三级网站| 最近中文字幕mv在线一区二区三区四区| 欧美壮男野外gaytube| 亚洲国产中文字幕在线观看| 久久天天躁狠狠躁夜夜躁2014| 日韩有码在线电影| 久久亚洲电影天堂| 91在线高清免费观看| 亚洲第一福利视频| 精品欧美aⅴ在线网站| 久久久久中文字幕2018| 国产精品美女www| 久操成人在线视频| 成人欧美一区二区三区黑人孕妇| 久久免费福利视频| 亚洲国产天堂久久综合| 欧美在线视频免费| 中文字幕v亚洲ⅴv天堂| 国产最新精品视频| 91精品国产91久久久久久不卡| 精品福利樱桃av导航| 亚洲精品成人久久久| 尤物tv国产一区| 成人国产精品久久久久久亚洲| 亚洲二区在线播放视频| 亚洲无av在线中文字幕| 久久久亚洲福利精品午夜| 91成人国产在线观看| 国产精品久久久久久影视| 日韩电视剧在线观看免费网站| 欧美成人一区二区三区电影| 日本一区二三区好的精华液| 欧美日韩一区二区在线播放| 久久久噜噜噜久久中文字免| 欧美精品久久久久| 亚洲欧美国产精品久久久久久久| 亚洲色图偷窥自拍| 欧美精品在线观看| 欧美视频在线观看 亚洲欧| 日本不卡高字幕在线2019| 少妇高潮 亚洲精品| 欧美黄色小视频| 亚洲精品视频免费在线观看| 91精品一区二区| 美日韩丰满少妇在线观看| 91福利视频网| 国产成人+综合亚洲+天堂| 亚洲欧美激情一区| 精品国产一区二区三区四区在线观看| 久久69精品久久久久久久电影好| 久久成人国产精品| 91精品久久久久久| 91成人性视频| 日韩精品中文字幕在线| 国产精品视频xxx| 成人免费大片黄在线播放| 91麻豆国产精品| 亚洲福利视频专区| 国产免费亚洲高清| 亚洲精选中文字幕| 97视频国产在线| 欧美人与性动交a欧美精品| 国产va免费精品高清在线观看| 成人妇女免费播放久久久| 在线中文字幕日韩| 中文字幕久精品免费视频| 国产精品一久久香蕉国产线看观看| 中文字幕九色91在线| 亚洲激情视频在线播放| 国产成人亚洲综合青青| 亚洲色图18p| 国产xxx69麻豆国语对白| 日韩乱码在线视频| 国产精品久久99久久| 色久欧美在线视频观看| 国产成人精品免高潮费视频| 日韩欧美精品在线观看| 国产99久久精品一区二区| 国产欧美精品一区二区| 久久理论片午夜琪琪电影网| 丰满岳妇乱一区二区三区| 久久天天躁狠狠躁老女人| 国内精品久久久久影院优| 在线精品高清中文字幕| 国产成一区二区| 国产精品永久免费| 国产精品久久久久国产a级|