use*_*755 5 asp.net serialization datetime json asp.net-mvc-3
当我返回包含DateTime属性的对象时使用
return Json(value);
Run Code Online (Sandbox Code Playgroud)
我收到的客户
"/Date(1336618438854)/"
Run Code Online (Sandbox Code Playgroud)
如果我使用返回相同的值
return Json(JsonConvert.SerializeObject(value));
Run Code Online (Sandbox Code Playgroud)
然后返回的序列化值(与序列化对象一起)是时区感知的:
"/Date(1336618438854-0400)/"
Run Code Online (Sandbox Code Playgroud)
有没有办法在没有双序列化的情况下获得一致的DateTime结果?我在某处读过MS会将Newtonsoft JSON包含到MVC中吗?
我终于弄明白该怎么做了.
我将我的项目切换为ISO 8601 DateTime格式.只需使用JsonConverter属性修饰对象上的datetime属性,就可以很好地与JSON.net完成序列化.
public class ComplexObject
{
[JsonProperty]
public string ModifiedBy { get; set; }
[JsonProperty]
[JsonConverter(typeof(IsoDateTimeConverter))]
public DateTime Modified { get; set; }
...
}
Run Code Online (Sandbox Code Playgroud)
要将序列化对象返回给客户端ajax调用,我可以这样做:
return Json(JsonConvert.SerializeObject(complexObjectInstance));
Run Code Online (Sandbox Code Playgroud)
在客户端:
jsObject = JSON.parse(result)
Run Code Online (Sandbox Code Playgroud)
现在,我想这将是可能简单覆盖默认的ASP.NET MVC默认JSON序列化给我们Newtonsoft JSON.net ISO 8601的序列,是的原则应该是类似这样的主题:更改默认JSON序列使用ASP MVC3.
alo*_*ida -2
如果您不想深入研究解析,只需将日期转换为字符串,而不是使用 JSON 解析它。
例如
return Json(DateTime.Now.ToString("your date format if you want to specify"));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18526 次 |
| 最近记录: |