宝哥软件园

Json返回时间格式乱码问题的两种解决方案

编辑:宝哥软件园 来源:互联网 时间:2021-11-15

好久没写博客了。首先,我在实现权限系列的惊艳和操作的实现。因为这些我们都说过了,就不再重复了。然后我们知道,当我们使用Json返回数据时,时间的格式一般会发生变化,变成一些我们不知道的字符。那么当我们遇到这些问题的时候,应该如何解决呢?今天,我将提出新的解决方案。找到问题(1)。正如我们在前言中所说的,我们在编写Json解析时间的时候会返回一些莫名其妙的东西,那么如何解决这个问题呢?现在我有两种方法来解决这个问题。先说思路。(2).第一个解决方案是我们使用Jquery来解决它。正如我们所知,当值从Json转移到前台进行赋值时,我们可以对其进行操作,以便可以直接反编译并显示在项目上。(3)第二种方案是我直接用C#代码在后台编译,然后直接转移到前台显示。(4).然后,让我们看看如果我们不解析如图所示的Json,所传递的时间的格式:

前台使用Jquery来解决(1)如果我们的前台使用Jquery来解决这个问题,那么首先想到的就是我们如何解析这个过程。当然,我们想到了编写一个JavaScript脚本来解析这个过程。当然这个剧本不是我写的,是别人写的,我们可以自己用。脚本如下:将韩应龙/* * *的代码://的扩展复制到Date,将Date转换为指定格式的String *月(m)、日(d)、12小时(h)、24小时(h)、分钟(m)、秒(s)、周(e)和季度。以毫秒为单位,只有一个占位符(1-3位数字)* eg: * (newdate())。图案(' yyyy-mm-DD hh :mm 3360s . s ')==2006-07-02 08:09:04。图案(' yyyy-mm-DD e hh :mm 3360s ')==2009-03-10-2 20:09:04 *(新日期())。图案(' yyyy-mm-DD e hh :mm 3360s ')。==2009年3月10日星期二08:09:04 *(新日期())。pattern(' yyyy-mm-ddee hh :mm 3360s ')==2009年3月10日星期二08:09:04 *。使用的模式(' yyyy-m-d h :m 3360s . s ')==2006-7-2 8:9:4.18:(eval(value。替换(//date ( d) ) //。*/date . prototype . pattern=function(fmt){ var o={ ' m ' : this . getmonth()1,//month' d ': this.getDate(),//day ' h ' : this . gethours()% 12。12 : this.getHours()% 12,//hours' H ': this.getHours(),//hours' m ': this.getMinutes(),//minutes ' s ' : this . getseconds(),//sec ' q ' : path . floor((this . getmonth()3)/3),//quarter ' s ' : this .get毫秒()//ms };var week={ '0': '/u65e5 ',' 1': '/u4e00 ',' 2': '/u4e8c ',' 3': '/u4e09 ',' 4': '/u56db ',' 5': '/u4e94 ',' 6 ' : '/u516 d ' };if (/(y )/。test(fmt)){ fmt=fmt . replace(RegExp。$1,(this.getFullYear()' ')。substr(4 - RegExp。$ 1 . length));} if (/(E )/。test(fmt)){ fmt=fmt . replace(RegExp。$1,((RegExp。$1.length 1)?(RegExp。1 .长度2美元?/u 661 f/u 671 f ' : '/u 5468 '): ' ')周[this . GetDay()' ']);} for(var k in o){ if(new RegExp('(' k ')')。test(fmt)){ fmt=fmt . replace(RegExp。$1,(RegExp。$1.length==1)?(o[k]) : (('00' o[k])。substr((' o[k])。长度)));} }返回fmt} (2)当我们写完上面的脚本后,此时需要在页面中使用这个脚本的信息,那么如何使用这个信息呢?当然,我们需要先引用这个对象:@ *日期格式引用* @ script src=' http : @ URL . content(~/content/data pattern . js ')/script(3)此时,当我们完成引用时,我们只差最后一步了。此时,我们需要设置easyUI显示数据的格式,并调用上面编写的Json解析脚本。代码如下:复制代码如下:冻结列3360 [{ field : ' CK ',checkbox : true}。//选择{title: '主键',field:' id ',width: 40,sortable: true},//主键{title: '角色名',field3360 '真名',width: 100,Sortable: true },//登录名{title: '角色类型',field: '类别代码',width 3360 100,sortable3360 true}模式(' yyyy-M-d h :M :s ');} }、{title: '上次修改人'、field : '修改人'、width : 90、sortable 3360 true}、{title : '修改时间'、field : '修改人'、width : 140、Sortable: true} ]、(4)最后我们可以看看转换后的思路如图所示:

后台使用基类来解决问题。(1)上面我们说了第一种方法,那么现在来说第二种方法。从第二个方法的标题可以看出,我们使用后台基类来实现这种效果,所以我们知道我们在之前的博客中建立了一个BaseController基础仓库,这里需要用到基础仓库。(2)在基础仓库中,我们编写了以下方法,其中我们使用了一些处理时间对象。你可以自己研究一下:复制代码如下:////summary////返回处理时间的Json字符串////summary///param name=' Date '/param////返回/返回public ContentResult JsonDate(对象日期){ var time converter=new isodatetime converter { datetime format=' yyyy-MM-DD hh :MM 3360s ' };返回内容(JsonConvert。序列化对象(日期,格式。缩进,时间转换器));} (3)接下来,我们需要在控制器中调用这个方法来返回对象。角色控制器的代码如下:复制代码如下:////summary///获取角色信息并在角色列表中显示////summary ///returns角色信息的Json对象/returns public action result getallroleinfos(){///。要查询用户和多条件分页,行指示有多少页,页指示当前页。int page index=请求['page']==null?1 : int。解析(请求['页面']);int pageSize=请求[' row ']==null?10 : int。分析(请求['行']);字符串RealName=请求[' real name '];int?已启用=请求['已启用']==空?-1 : int。分析(请求['已启用']);int?CategoryCode=请求['CategoryCode']==null?-1 : int。解析(请求[' CategoryCode ']);int total=0;//封装一种业务逻辑层的方法来处理多条件查询role infoquery role info=new role infoquery(){ page index=page index,pagesize=pagesize,realname=realname,enabled=enabled,categorycode=categorycode,total=0 };var date=_ RoleInfo . LoadSearchDate(RoleInfo);//构造Json对象并返回var result=new { total=role info . total,rows=date };返回JsonDate(结果);} (4)最后我们的前台恢复到原来的状态,没有变化,实现的功能如图所示:

更多资讯
游戏推荐
更多+