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