JavaScriptSerializer 序列化json 时间格式
以下是代码:
实体
 public class jsonmm
    {  
       public string Name { get; set; }
       public int Age { get; set; }
       //[ScriptIgnore]
       public DateTime LastLoginTime { get; set; }
    }
方法:
 public string ScriptSerialize<T>(T t)
       {
           JavaScriptSerializer js = new JavaScriptSerializer();
           return js.Serialize(t);
       }
页面测试:
 Code.json pp = new Code.json();
        Code.jsonmm p = new Code.jsonmm();
        p.Name = "张三";
        p.Age = 28;
    
        p.LastLoginTime = DateTime.Now.ToUniversalTime();
 string jsonString = pp.ScriptSerialize<Code.jsonmm>(p);
        Response.Write(jsonString);
时间已经转换为utc格式了,可还是得出这样的数据
{"Name":"张三","Age":28,"LastLoginTime":"\/Date(1313572554031)\/"}
怎么修改呢
              
------解决方案--------------------JavaScriptSerializer的行为是这样的,你可以在客户端再处理一下
var json = { "Name": "张三", "Age": 28, "LastLoginTime": "\/Date(1313572554031)\/" };
//把/删除,并转换为正确的javascript时间
json.LastLoginTime = eval('new ' + (json.LastLoginTime.replace(/\//g, '')));
alert(json.LastLoginTime);
------解决方案--------------------那种时间格式是json的标准时间格式
你也可以在C#自定义类型解析器,继承自System.Web.Script.Serialization.SimpleTypeResolver,来自己解析时间类型,你可以在网搜索一下
------解决方案--------------------