实体和json互转(不使用第三方Newtonsoft.Json.dll)
1.实体转Json
需要添加引用:System.ServiceModel.Web 和 System.Runtime.Serialization,然后使用Using:
/// <summary> /// 获取将实体类转换为json数据(目的是为了更快在网页上传递数据) /// </summary> /// <returns></returns> public string GetJsonByModel<T>(T data) { //将对象序列化json // DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(data)); DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T)); //创建存储区为内存流 System.IO.MemoryStream ms = new MemoryStream(); //将json字符串写入内存流中 serializer.WriteObject(ms, data); System.IO.StreamReader reader = new StreamReader(ms); ms.Position = 0; string strRes = reader.ReadToEnd(); reader.Close(); ms.Close(); return strRes; } public static T GetModelByJson<T>(string input) { try { JavaScriptSerializer js = new JavaScriptSerializer(); return js.Deserialize<T>(input); //#if NETFRAMEWORK // JavaScriptSerializer js = new JavaScriptSerializer(); // return js.Deserialize<T>(input); //#else // return System.Text.Json.JsonSerializer.Deserialize<T>(input); //#endif } catch (Exception e) { Console.WriteLine(e.Message); return default(T); } } public static string GetJsonByObj(object obj) { JavaScriptSerializer js = new JavaScriptSerializer(); return js.Serialize(obj); //#if NETFRAMEWORK // JavaScriptSerializer js = new JavaScriptSerializer(); // return js.Serialize(obj); //#else // return System.Text.Json.JsonSerializer.Serialize(obj); //#endif }