.net下的json序列化在以前没有Newtonsoft.Json崭露头角之前采用System.Web.Script.Serialization命名空间下的JavaScriptSerializer对象进行序列化和反序列化的操作,随着Newtonsoft.Json的出现和优越的性能表现基本成为.net下的首选。
Newtonsoft.json自身已经提供了丰富的API,让序列化变得简单和易用。项目中喜欢封装一些helper,在原有基于JavaScriptSerializer基础上稍加改造即可完成jsonHelper的改造。
using Newtonsoft.Json; namespace Common { public class JsonHelper { /// <summary> /// json实体反序列化 /// </summary> /// <typeparam name="T">实体类型</typeparam> /// <param name="json">json</param> /// <returns>实体</returns> public static T Deserialize<T>(string json) { T t = default(T); if (!string.IsNullOrWhiteSpace(json)) { t = (T)JsonConvert.DeserializeObject(json, typeof(T)); } return t; } /// <summary> /// 实体序列化json /// </summary> /// <typeparam name="T">实体类型</typeparam> /// <param name="t">实体</param> /// <returns>json</returns> public static string Serialize<T>(T t) { string json = string.Empty; if (t != null) { json = JsonConvert.SerializeObject(t); } return json; } } }