1. 程式人生 > >web api中序列化後的時間中含有“T”的解決方法

web api中序列化後的時間中含有“T”的解決方法

web api中序列化後的時間中含有“T”的解決方法

web api中,系統會自動將返回的物件序列化為json資料,但是如果物件中含有時間的話,序列化後的時間中會含有“T”字元,如下:

        public object getJson()
        {
            var rst = new
            {
                name = "abc",
                time = DateTime.Now
            };

            return rst;
        }

返回後返回的json

程式碼如下:

{
    "name": "abc",
    "time": "2015-02-10T15:18:21.7046433+08:00"
}

web api返回的是標準格式時間,但是我們平常並不需要標準格式的時間,那麼我們如何修改返回的資料的時間格式呢?

web api中,我們可以在WebApiConfig.csRegister函式中新增以下配置來定義返回的時間型別格式,如下:

            //配置返回的時間型別資料格式
            GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.Converters.Add(
                new Newtonsoft.Json.Converters.IsoDateTimeConverter()
                {
                    DateTimeFormat = "yyyy-MM-dd hh:mm:ss"
                }
            );

DateTimeFormat中的格式即是我們自定義的時間格式,定義後我們再訪問getJson介面看看返回的資料會怎樣,如下:

{
    "name": "abc",
    "time": "2015-02-10 03:26:14"
}

哈哈,變成了我們常用的格式了