Extjs4如何处理后台json数据中日期和时间
程序员文章站
2023-11-28 00:02:46
当asp.net后台使用javascriptserializer这个组件将对象序列化为json,或者使用scriptmethod特性的json
[scriptm...
当asp.net后台使用javascriptserializer这个组件将对象序列化为json,或者使用scriptmethod特性的json
[scriptmethod(responseformat = responseformat.json), webmethod(enablesession = true)] public list<euser> users()//参数测试用 { list<euser> l = new list<euser>(); random aran = new random(); for (int i = 0; i < 24; i++) { datetime date = datetime.parse("2015-08-21"); date = date.addhours(i); var u = new euser(date,math.round(aran.nextdouble() * 100) , math.round(aran.nextdouble() * 100), math.round(aran.nextdouble() * 100)); l.add(u); } return l; }
生成的日期json格式是这样的//date(1213718400000+0800)//
这种格式extjs不识别,导致grid上无法正常显示。使用extjs4的时候,在列模式里像下面这样处理即可。
{ text:'审核时间', dataindex:'date', width:200, renderer: function(value) { if(value){ var dt=eval("new " + value.substr(1, value.length - 2)).tostring(); return ext.util.format.date(dt, "y年m月d日h时i分s秒");//"y年m月d日h时i分s秒" } } }
当asp.net后台使用newtonsoft.json(json.net)这个组件将对象序列化为json,
hashtable ht = new hashtable(); ht.add("total", listu.count); ht.add("rows", listu); jsonstr = jsonconvert.serializeobject(ht);//使用json.net序列化 context.response.write(jsonstr);
生成的日期格式是标准的日期像这样子:
"2013-01-15t15:00:00"
{ text:'审核时间', dataindex:'date', width:200, xtype:'datecolumn', format:'y年m月d日h时i分s秒' }
extjs4---json处理日期的问题 jsonobject.tobean转换日期时显示当前日期
今天碰到了一个新问题,在前台修改日期后,在后台用jsonobject.tobean转为实体类时出问题了:
1、会显示警告:can't transform property 'birthday' from java.lang.string into java.util.date. will register a default morpher
2、转换的日期为当前的日期,而不是修改后的日期
原因是jsonobject不能识别类似“yyyy-mm-dd”的格式
解决的办法有很多,下面分享我用的一种方法:
jsonobject object = jsonobject.fromobject(updateuser); //在<span style="font-family: arial;">jsonobject.tobean加上这行代码就可以了</span> jsonutils.getmorpherregistry().registermorpher(new datemorpher(new string[] {"yyyy-mm-dd", "yyyy-mm-dd hh:mm:ss"})); user user = (user) jsonobject.tobean(object, user.class);
通过此方法问题解决,方法还有很多种,欢迎大家分享,功能学习进步。
上一篇: C#实现由四周向中心缩小的窗体退出特效
下一篇: 零基础学习大数据需要掌握的基础