ASP.NET MVC Controller.Json日期时间序列化VS NewtonSoft的Js

2019-06-24 07:09发布

当我回到使用包含的DateTime属性对象

return Json(value);

在客户端我收到

"/Date(1336618438854)/"

如果我使用返回相同的值

return Json(JsonConvert.SerializeObject(value));

然后返回的序列化值(带有序列化对象一起)是时区意识到:

"/Date(1336618438854-0400)/"

有没有什么办法来得到一致的DateTime结果无无双序列化? 我在其他地方见过那个MS将包括Newtonsoft JSON到MVC?

Answer 1:

我终于想通了,做什么。
我将切换我的项目ISO 8601 DateTime格式。 序列化只是用JsonConverter属性的对象上装饰的日期时间属性与JSON.net很好做。

    public class ComplexObject 
    {
        [JsonProperty]
        public string ModifiedBy { get; set; }
        [JsonProperty]
        [JsonConverter(typeof(IsoDateTimeConverter))]
        public DateTime Modified { get; set; }
        ...
     }

要返回序列化对象到客户端AJAX调用我可以这样做:

    return Json(JsonConvert.SerializeObject(complexObjectInstance));

并在客户端上:

    jsObject = JSON.parse(result)

现在,我想这将是可能简单覆盖默认的ASP.NET MVC默认JSON序列化给我们Newtonsoft JSON.net ISO 8601的序列,是的原则应该是类似这样的主题: 更改默认JSON序列使用ASP MVC3 。



Answer 2:

WebApiConfig集:

config.Formatters.Remove(config.Formatters.XmlFormatter);
        //config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
        config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));
        config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
        config.Formatters.JsonFormatter.SerializerSettings.Formatting = Newtonsoft.Json.Formatting.Indented;
        config.Formatters.JsonFormatter.SerializerSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat;

        config.MapHttpAttributeRoutes();

在ApiController返回此:

return Request.CreateResponse(HttpStatusCode.OK, obj);

好运CAhumada



Answer 3:

如果你不想在掏解析的事情不是简单地转换你的日期字符串比用JSON解析它。

例如

return Json(DateTime.Now.ToString("your date format if you want to specify"));


Answer 4:

它返回服务器日期格式。 您需要定义自己的函数。

function jsonDateFormat(jsonDate) {

// Changed data format;
return (new Date(parseInt(jsonDate.substr(6)))).format("mm-dd-yyyy / h:MM tt");

};



文章来源: ASP.NET MVC Controller.Json DateTime Serialization vs NewtonSoft Json DateTime Serialization