手记

Json+jquery实现异步分页

             Json作为一种轻量级的数据交换格式,由于其传输数据格式的方便性,今天偶然想将其应用于分页实现, 分页做为web开发一个长久的话题,其应用的高效与重要性就不多说了   本文主要技术:反射机制,Json数据格式,jquery   为了应用的通用性,首先要根据反射机制,能将要返回的任意类型的结果对象转化成Json类型的格式,
   public static String toJSON(Object obj) {
                 HashMap<String, String> map = new HashMap<String, String>();
        Class c = obj.getClass();
        // 利用反射机 制,把里面所有的属性,反射出来使用,这样放入任何一个对象,     都可以找到他们的属性,
        // 把这些属性的名,和属性的值,封装成一个map里,
    Field[] fields = c.getDeclaredFields();
      for (int i = 0; i < fields.length; i++) {
         String name = fields[i].getName();
    try {
       fields[i].setAccessible(true);
        Object o = fields[i].get(obj);
       i f (o instanceof Number) {
       map.put("\"" + name + "\"", o.toString());
    } else if (o instanceof String) {
        map.put("\"" + name + "\"", "\"" + o.toString() + "\"");
       }
      } catch (IllegalArgumentException e) {
      } catch (IllegalAccessException e) {
    }
   }
  /  / 把map对象变成字符串
   // 这些格式还需要把=变成:
   String s = map.toString();
   / /System.out.println(s);
   String str = s.replaceAll("\"=", "\":");
   //System.out.println(str);
   return str;
}
   
     将要返回的多个对象转换成Json类型的对象后 ,最后应加上分页的信息,最终将多个Json字符串,转化成一整个Json类型         {"0":{"id":"0", "name":"dong0", "age":21},"1":{"id":"1", "name":"dong1", "age":21},"2":{"id":"2", "name":"dong2", "age":21},"3":{"id":"3", "name":"dong3", "age":21},"4":{"id":"4", "name":"dong4", "age":21},"5":{"id":"5", "name":"dong5", "age":21},"6":{"id":"6", "name":"dong6", "age":21},"7":{"id":"7", "name":"dong7", "age":21},"8":{"id":"8", "name":"dong8", "age":21},"9":{"id":"9", "name":"dong9", "age":21},"10":{"firstPage":1, "currentPage":1, "default_Record_Num":10, "lastPage":10, "frontPage":1, "sum":100, "nextPage":2},"length":11}
   当信息发送到客户端时 ,只用jquery接收对象的数据就行了 ,这样 可以实现前台的样式与后台传送的数据分离 ,更加简化了代码   $.getJSON("result.jsp?page="+p, function(json){
          $("#show").html("<tr><th>用户ID</th><th>用户名</th><th>用户年龄</th></tr>");
               for(var i=0 ; i<json.length-1; i++){
                $("#show").append("<tr><td>"+json[i]["id"]+"</td><td>"+json[i]["name"]+"</                         td><td>"+json[i]["age"]+"</td></tr>");
                         }
               $("#currentPage").attr("value",json[json.length-1]["currentPage"]); 
              $("#pageCount").attr("value",json[json.length-1]["lastPage"]); 
          }); 
   

0人推荐
随时随地看视频
慕课网APP