ASP.NET C#使用JavaScriptSerializer實現序列化與反序列化得到JSON


在JavaScriptSerializer中,我們可以看到下面可以使用的方法或者構造函數,它們都是實例方法:

Member Description
JavaScriptSerializer() 構造函數,用於創建一個新的JavaScriptSerializer對象,不指定JavaScriptTypeResolver
JavaScriptSerializer(JavaScriptTypeResolver) 構造函數,用於創建一個新的JavaScriptSerializer對象,並使用指定的JavaScriptTypeResolver來映射特定類型與標識字符串。
ConvertToType<T>(Object) 將給定對象轉化成類型T。
Deserialize<T>(String) 將JSON字符串轉化為類型T。
DeserializeObject(String) 將JSON字符串轉化為一個對象。
MaxJsonLength 獲取或者設置序列化時能夠接受的JSON字符串的最大長度。
RecursionLimit 獲取或者設置在反序列化JSON字符串時遞歸的最大深度。
RegisterConverters(IEnumerable<JavaScriptConverter>) 注冊序列化過程中使用的JavaScriptConveter對象。
Serialize(Object) 將一個對象序列化成JSON字符串。
Serialize(Object, StringBuilder) 將一個對象序列化到一個StringBuilder中。

C#代碼:

        //
     public class UserInfo
        {
            public Int Id { get; set; }
            public String UserName { get; set; }
            public DateTime Time { get; set; }
        }
        //代碼
        public void js()
        {
      
//源數據 UserInfo info = new UserInfo(); info.Id = 1; info.UserName = "張三"; info.Time = DateTime.Now;        //初始化 System.Web.Script.Serialization.JavaScriptSerializer jss = new System.Web.Script.Serialization.JavaScriptSerializer();        //序列化,strJson就是josn串 String strJson = jss.Serialize(info);//輸出結果:{"Id":1,"UserName":"張三","Time":"\/Date(1297950721668)\/"}
      
//方式一:反序列化,轉成model UserInfo info2 = jss.Deserialize<UserInfo>(strJson);
      
//方式二:JavaScriptObject JavaScriptObject jObject = JavaScriptConvert.DeserializeObject(strJson) as JavaScriptObject; string UserName = jObject["UserName"].ToString(); string Time = jObject["Time"].ToString();//時間格式需要特殊處理 Time = Time.Replace("/Date(","").Replace(")/","");//替換掉/Date(),只保留里面的數字 Time = ConvertJsonDateToDateString(Convert.ToInt64(Time)); //如果josn里還包含josn,那么就需要這么寫。 JavaScriptArray JsonData = (JavaScriptArray)jObject["records"]; if (JsonData.Count > 0) { for (int m = 0; m < JsonData.Count; m++) { JavaScriptObject orderObj = (JavaScriptObject)JsonData[m]; } } } /// <summary> /// 將Json序列化的時間由/Date(1503996878)/轉為字符串 /// </summary> public string ConvertJsonDateToDateString(long Time) { string result = string.Empty; DateTime dt = new DateTime(1970, 1, 1); dt = dt.AddMilliseconds(Time); dt = dt.ToLocalTime(); result = dt.ToString("yyyy/MM/dd HH:mm:ss"); return result; }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM