json做爲做爲一種最經常使用的數據,應用很普遍,在.net中如何把一個對象轉化爲json字符串呢?html
主要有一下幾種json
1按照json的定義本身轉化,難度很大,但很靈活。須要本身處理各類特殊字符,各類數據類型spa
2使用開源的類庫Newtonsoft.Json.net
3使用JavaScriptSerializer類 code
4使用System.Runtime.Serialization.dll提供的DataContractJsonSerializer或者 JsonReaderWriterFactory實現。htm
1按照json的定義本身轉化,難度很大,但很靈活。須要本身處理各類特殊字符,各類數據類型
對象
要寫成通用的核心就是使用反射。blog
2使用開源的類庫Newtonsoft.Json,很方便,.net的各個版本都有。ip
/// <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實現。
具體參考:http://www.cnblogs.com/txw1958/archive/2012/08/01/csharp-json.html
字符串
出處:https://blog.csdn.net/xuexiaodong009/article/details/46998069