C# .net中json字串和對象之間的轉化方法

來源:互聯網
上載者:User

標籤:reader   難度   color   4.0   har   mil   命名空間   data   param   

http://blog.csdn.net/xuexiaodong009/article/details/46998069

 

 

json作為作為一種最常用的資料,應用很廣泛,在.net中如何把一個對象轉化為json字串呢?

主要有一下幾種

1按照json的定義自己轉化,難度很大,但很靈活。需要自己處理各種特殊字元,各種資料類型

2使用開源的類庫Newtonsoft.Json

3使用JavaScriptSerializer類 

4使用System.Runtime.Serialization.dll提供的DataContractJsonSerializer或者 JsonReaderWriterFactory實現。

 

1按照json的定義自己轉化,難度很大,但很靈活。需要自己處理各種特殊字元,各種資料類型

要寫成通用的核心就是使用反射。

2使用開源的類庫Newtonsoft.Json,很方便,.net的各個版本都有。

 

[csharp] view plain copy
  1. /// <summary>  
  2.        /// 對象轉為json  
  3.        /// </summary>  
  4.        /// <typeparam name="ObjType"></typeparam>  
  5.        /// <param name="obj"></param>  
  6.        /// <returns></returns>  
  7.        public static string ObjToJsonString<ObjType>(ObjType obj) where ObjType : class  
  8.        {  
  9.            string s = JsonConvert.SerializeObject(obj);  
  10.            return s;  
  11.        }  
  12.        /// <summary>  
  13.        /// json轉為對象  
  14.        /// </summary>  
  15.        /// <typeparam name="ObjType"></typeparam>  
  16.        /// <param name="JsonString"></param>  
  17.        /// <returns></returns>  
  18.        public static ObjType JsonStringToObj<ObjType>(string JsonString) where ObjType : class  
  19.        {            
  20.            ObjType s = JsonConvert.DeserializeObject<ObjType>(JsonString);  
  21.            return s;  
  22.        }  


3JavaScriptSerializer類 ,使用.NET Framework 3.5/4.0中提供的System.Web.Script.Serialization命名空間下的JavaScriptSerializer類進行對象的序列化與還原序列化。需要添加程式集System.Web.Extensions.dll。

 

[csharp] view plain copy
  1. /// <summary>  
  2.        /// 對象轉為json  
  3.        /// </summary>  
  4.        /// <typeparam name="ObjType"></typeparam>  
  5.        /// <param name="obj"></param>  
  6.        /// <returns></returns>  
  7.        public static string ObjToJsonString<ObjType>(ObjType obj) where ObjType : class  
  8.        {  
  9.            JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();  
  10.            string s = jsonSerializer.Serialize(obj);  
  11.            return s;  
  12.        }    
  13.        /// <summary>  
  14.        /// json轉為對象  
  15.        /// </summary>  
  16.        /// <typeparam name="ObjType"></typeparam>  
  17.        /// <param name="JsonString"></param>  
  18.        /// <returns></returns>  
  19.        public static ObjType JsonStringToObj<ObjType>(string JsonString) where ObjType : class  
  20.        {  
  21.            JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();  
  22.            ObjType s = jsonSerializer.Deserialize<ObjType>(JsonString);  
  23.            return s;  
  24.        }  

4使用System.Runtime.Serialization.dll提供的DataContractJsonSerializer或者 JsonReaderWriterFactory實現。具體可參考

C# .net中json字串和對象之間的轉化方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.