Newtonsoft.Json 序列化日期問題解決

 

上代碼

其中的使用方法和UserInfo實體對象就不貼代碼了。html

        /// <summary>
        /// 把對象轉成json字符串
        /// </summary>
        /// <param name="o">對象</param>
        /// <returns>json字符串</returns>
        public static string SerializeToJson(object data)
        {
            return JsonConvert.SerializeObject(data);
        }    

獲得結果(紅色字體)


var data = { "dbstring": "test", "modelUserInfo": { "User_ID": 1002, "User_Name": "lx99959@qq.com", "Real_Name": "lx99959@qq.com", "Password": "96e79218965eb72c92a549dd5a330112", "Mobile": "13121893780", "Email": "", "IDCard": "", "Source": 1, "Lat": 34.2627525, "Lng": 117.19381, "Precision": 0, "Weixin_OpenID": "", "Role_Code": "[Master]", "Status": 0, "Login_Count": 19, "LastLogin_Date": "/Date(1417165362307)/", "LastLogin_IP": "127.0.0.1", "Create_Date": "/Date(1417104000000)/",//時間會成這種格式 "Create_IP": "127.0.0.1" } }

方法優化

 

給SerializeObject方法加了重載參數

var timeConverter = new IsoDateTimeConverter { DateTimeFormat = DateTimeFormats };

 

        public static string SerializeToJson(object data, string DateTimeFormats = "yyyy-MM-dd HH:mm:ss")
        {
            var timeConverter = new IsoDateTimeConverter { DateTimeFormat = DateTimeFormats };
            return JsonConvert.SerializeObject(data, Formatting.Indented, timeConverter);
        }

 

其餘方法

        /// <summary>
        /// 把json字符串轉成實體對象
        /// </summary>
        /// <typeparam name="T">對象</typeparam>
        /// <param name="data">json字符串</param> 
        public static T DeserializeToModel<T>(string data)
        {
            return JsonConvert.DeserializeObject<T>(data);
        }

        /// <summary>
        /// 將json字符串轉換成list<T>
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="data"></param>
        /// <returns></returns>
        public static List<T> DeserializeToList<T>(string data)
        {
            return JsonConvert.DeserializeObject<List<T>>(data);
        }

注意:將json list字符串轉換成list<T>的時候可能會出問題。Look下面的modelUser_InfoList是一個實體列表list,然而前面的code和msg屬於自定義字段。json

調用方法:DeserializeToList<T>(string data) 記得取出data裏面的數組傳入參數數組

 

           return JsonUtils.SerializeToJson(new
            {
                code = "1",
                msg = "success",
                data = modelUser_InfoList
            });

示例:字體

JObject obj = JObject.Parse(json_list);

string json = obj["data"].ToString();

List<User_Info> listGetResultInfo = JsonUtils.DeserializeToList<User_Info>(json);

 

 

原文地址:http://www.cnblogs.com/lxsweat/p/4372508.html優化

相關文章
相關標籤/搜索