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的各個版本都有。
- /// <summary>
- /// 對象轉為json
- /// </summary>
- /// <typeparam name="ObjType"></typeparam>
- /// <param name="obj"></param>
- /// <returns></returns>
- public static string ObjToJsonString<ObjType>(ObjType obj) where ObjType : class
- {
- string s = JsonConvert.SerializeObject(obj);
- return s;
- }
- /// <summary>
- /// json轉為對象
- /// </summary>
- /// <typeparam name="ObjType"></typeparam>
- /// <param name="JsonString"></param>
- /// <returns></returns>
- public static ObjType JsonStringToObj<ObjType>(string JsonString) where ObjType : class
- {
- ObjType s = JsonConvert.DeserializeObject<ObjType>(JsonString);
- return s;
- }
3JavaScriptSerializer類 ,使用.NET Framework 3.5/4.0中提供的System.Web.Script.Serialization命名空間下的JavaScriptSerializer類進行對象的序列化與反序列化。需要添加程序集System.Web.Extensions.dll。
- /// <summary>
- /// 對象轉為json
- /// </summary>
- /// <typeparam name="ObjType"></typeparam>
- /// <param name="obj"></param>
- /// <returns></returns>
- public static string ObjToJsonString<ObjType>(ObjType obj) where ObjType : class
- {
- JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
- string s = jsonSerializer.Serialize(obj);
- return s;
- }
- /// <summary>
- /// json轉為對象
- /// </summary>
- /// <typeparam name="ObjType"></typeparam>
- /// <param name="JsonString"></param>
- /// <returns></returns>
- public static ObjType JsonStringToObj<ObjType>(string JsonString) where ObjType : class
- {
- JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
- ObjType s = jsonSerializer.Deserialize<ObjType>(JsonString);
- return s;
- }
4使用System.Runtime.Serialization.dll提供的DataContractJsonSerializer或者 JsonReaderWriterFactory實現。具體可參考