System.Runtime.Serialization 是不夠的,還要添加 System.ServiceModel和System.ServiceModel.Web的引用System.Runtime.Serialization.Json 出來了,可以開始對JSON字符串轉(zhuǎn)為實(shí)體了。
/// <summary>
/// Serialize T to string /// </summary> /// <param name="item"></param> /// <returns></returns> public static string Serialize<T>(T item) { if (item == null) return string.Empty; var serializer = new DataContractJsonSerializer(item.GetType()); using (var ms = new MemoryStream()) { serializer.WriteObject(ms, item); var sb = new StringBuilder(); sb.Append(Encoding.UTF8.GetString(ms.ToArray())); return sb.ToString(); } } /// <summary> /// Deserialize string back to T /// </summary> /// <param name="jsonString"></param> /// <returns></returns> public static T Deserialize<T>(string jsonString) { if (string.IsNullOrEmpty(jsonString)) return default(T); var ser = new DataContractJsonSerializer(typeof(T)); using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString))) { T jsonObject = (T)ser.ReadObject(ms); return jsonObject; } } Json序列化和反序列化方法
引用空間System.Runtime.Serialization和System.Runtime.Serialization.Json
publicstaticstring ToJsJson(thisobject item)
{ DataContractJsonSerializer serializer =new DataContractJsonSerializer(item.GetType()); using (MemoryStream ms =new MemoryStream()) { serializer.WriteObject(ms, item); StringBuilder sb =new StringBuilder(); sb.Append(Encoding.UTF8.GetString(ms.ToArray())); return sb.ToString(); } } ///<summary> //////</summary> publicstatic T FromJsonTo<T>(thisstring jsonString) { DataContractJsonSerializer ser =new DataContractJsonSerializer(typeof(T)); MemoryStream ms =new MemoryStream(Encoding.UTF8.GetBytes(jsonString)); T jsonObject = (T)ser.ReadObject(ms); ms.Close(); return 實(shí)體類 }
|
|
來自: 修行的嘟嘟 > 《軟件開發(fā)》