分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

JackSon与AJAX的简单操作

发布时间:2023-09-06 01:58责任编辑:胡小海关键词:暂无标签

 服务器序列化与反序列化

一,序列化

 ???/** ????* 序列化为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); ???????????????} ???????????});

JackSon与AJAX的简单操作

原文地址:https://www.cnblogs.com/NiuBiHH/p/9138905.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved