微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JackSon与AJAX的简单操作

 服务器序列化与反序列化

一,序列化

    /**
     * 序列化为json
     */
    public static String toJson(Object obj) {
        String result = null;
        try {
            //对象映射器
            ObjectMapper objectMapper = new ObjectMapper();
            //设置日期格式
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd HH:mm:ss");
            objectMapper.setDateFormat(sdf);

            result = objectMapper.writeValueAsstring(obj);
        } catch (JsonProcessingException e) {
            e.printstacktrace();
        }
        return result;
    }

 

二,反序列化

/**
     * 反序列化成对象
     *
     * T:表示全部类型与objcet不同的是 泛型强类型 Object为弱类型
     * json:需要反序列化的字符串
     * valueType:反序列化的类型
     * */
    public static <T> T toObject(String json,Class<T> valueType) {
        //对象映射器
        ObjectMapper mapper=new ObjectMapper();
        T result=null;
        try {
            result=mapper.readValue(json,valueType);

        }catch (Exception e) {
            e.printstacktrace();
        }
        return result;
    }

三,序列化时时间的问题

  通过jackson序列化时时间是一个问题,它会把时间转换为1977年到现在这个时间的毫秒数,下面来解决这个问题

1,时间注解@JsonFormat:  在需要指定序列化对象的时间字段前面插入时间注解,转变为自己想要的格式

  

    private String comid;
    private String comname;
    private String comprice;
    //设置日期格式
   /**
    *locale:国家
    *timezone:时区
    *pattern:时间格式
    */ @JsonFormat(locale="zh",timezone="GMT+8",pattern="yyyy-MM-dd HH:mm:ss") private String comtime; private String yn;

 

2,SimpleDateFormat:  在序列化前设置好时间格式

            //对象映射器
            ObjectMapper objectMapper = new ObjectMapper();
            //设置日期格式
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd HH:mm:ss");
            objectMapper.setDateFormat(sdf);

            objectMapper.writeValueAsstring(obj);

 

Jackson工具包:

 https://files.cnblogs.com/files/NiuBiHH/jackson.zip

 

四,原生AJAX

获取XHR对象 

   /**
     * 获取XHR对象
     * */
    function getXHR() {
        //window.XMLHttpRequest 普通浏览器差不多都具备的对象
        if(window.XMLHttpRequest){
            return new XMLHttpRequest();
        }else  if(window.ActiveXObject){
            //ActiveXObject("Microsoft.XMLHTTP") 为Microsoft公司的 在IE6 IE5下获得的XHR对象
            return new ActiveXObject("Microsoft.XMLHTTP");
        }
        return null;
    }

状态发生改变时调用函数

      /*
    *xhr.readyState等于4时 表示请求成功
    *xhr.status等于200时 表示服务器响应状态成功
    *xhr.responseText 取出服务器响应返回的值
    */
      XHR.onreadystatechange=function(){
            if(xhr.readyState==4){ 
                if(xhr.status==200){ 
                 xhr.responseText;
           } } }

open()  如果是本地的话可以用openReques()代替

/*
* method 请求的类型 如:get post
* url  请求是路径
* asycn 是否是异步请求 认为true
*/

void
open( DOMString method,DOMString url,optional boolean async,);
xhr.open("GET","commodityControl?action=time",true); 

 send() 请求的所有相关事件都必须在此方法之前

 xhr.send(null); 

 

事例:


/** * 获取XHR对象 * */ function getXHR() { //window.XMLHttpRequest 普通浏览器差不多都具备的对象 if(window.XMLHttpRequest){ return new XMLHttpRequest(); }else if(window.ActiveXObject){ //ActiveXObject("Microsoft.XMLHTTP") 为Microsoft公司的 在IE6 IE5下获得的XHR对象 return new ActiveXObject("Microsoft.XMLHTTP"); } return null; } function getTime_click(){ var xhr=getXHR(); //当状态变化时的事件 xhr.onreadystatechange=function(){ if(xhr.readyState==4){ //请求成功 if(xhr.status==200){ //服务器响应状态成功 //将从服务器获得的数据显示页面 alert(xhr.responseText); } } } //打开请求 xhr.open("GET","commodityControl?action=time",true); //请求类型,路径,是否为异步请求 //发送请求 xhr.send(null); //参数 }

五,$.ajax(options)

$.ajax参数描述
属性 类型 描述
url 字符串 请求的URL
Type  字符串 请求的方法 如:GET() POST() 认GET()
Data 对象 请求后台时带过去的参数
dataType 字符串 设置服务器返回数据的类型 如:XML HTTP JSON SCRIPT TEXT
timeout 数值 设置请求时间 如果超过改时间则中止请求 并调用错误函数
global 布尔值 启用或者禁用全集函数的触发
contentType 字符串 请求的内容类型
success 函数 请求成功时调用函数,该函数一个参数为服务器的响应值
error 函数 请求响应指示错误状态码,携带三个实参调用函数:请求对象,   状态消息字符串 ,   异常对象
complete 函数 请求响应指示成功状态码,调用函数,如果指定了success或error回调函数,则在他们被调用之后在调用函数
beforeSend 函数 发起请求前调用函数
async 布尔值 指定是否为异步请求

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

事例:

            $.ajax({
                type: "get",//请求类型
                url: "commodityControl?action=allcom",//路径
                beforeSend: function () {                                //请求前的事件
                    c.show();
                },success: function (data) {              //请求成功后的事件
                    $.each(data,function (index,obj) {
                        var tr = $("<tr/>");
                        var inptd = $("<td/>");
                        $("<input name=‘comCheck‘ class=‘comCheck‘ type=‘checkBox/>").html(obj.comtime).appendTo(inptd).data("id",obj.comid);
                        inptd.appendTo(tr);
                        $("<td/>").html(obj.comid).appendTo(tr);
                        $("<td/>").html(obj.comname).appendTo(tr);
                        $("<td/>").html(obj.comprice).appendTo(tr);
                        $("<td/>").html(obj.comtime).appendTo(tr);
                        var inputtd = $("<td/>");
                        if (obj.yn == ‘y‘) {
                            $("<input  name=‘yn‘ checked=‘‘ value=‘y‘ type=‘checkBox/>").html(obj.comtime).appendTo(inputtd);
                        }
                        else {
                            $("<input  name=‘yn‘ type=‘checkBox/>").html(obj.comtime).appendTo(inputtd);
                        }
                        inputtd.appendTo(tr);
                        var atd = $("<td/>");
                        $("<a href=‘#‘class=‘aupdate‘></a> ").html("详细    ").appendTo(atd).data("id",obj.comid);
                        $("<a href=‘#‘ class=‘adel‘></a> ").html("   删除").appendTo(atd).data("id",obj.comid);
                        atd.appendTo(tr);
                        $("#com").append(tr);
                        c.close();
                    });
                },complete: function () {  //请求完成时的事件,不论成功或失败
                    $("#hint").html("请求完成...");

                },error: function (xhr,textStatus,errorThrown) {  //错误时
                    alert(xhr + textStatus + errorThrown);
                }
            });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐