C# JsonHelper
来源:互联网 发布:linux accept函数 编辑:程序博客网 时间:2024/06/05 14:38
在c#项目中有时会用到json格式字符串和对象数据类型的转换,下面是一个转换工具类:
说明:根据Json字符串生成对象时,是根据对应的属性名称赋值,多于或少于都不会报错.
使用“DataContractJsonSerializer ”类时需要:
1、引用程序集 System.Runtime.Serialization 和 System.ServiceModel.Web
2、导入命名空间 System.Runtime.Serialization 和 System.Runtime.Serialization.Json
使用“JavaScriptSerializer ”类时需要:
1、引用程序集 System.Web.Extension
说明:根据Json字符串生成对象时,是根据对应的属性名称赋值,多于或少于都不会报错.
使用“DataContractJsonSerializer ”类时需要:
1、引用程序集 System.Runtime.Serialization 和 System.ServiceModel.Web
2、导入命名空间 System.Runtime.Serialization 和 System.Runtime.Serialization.Json
使用“JavaScriptSerializer ”类时需要:
1、引用程序集 System.Web.Extension
2、导入命名空间 System.Web.Script.Serialization
/// <summary> /// Json序列化和反序列化辅助类 /// </summary> public class JsonHelper { /// <summary> /// Json序列化 /// </summary> public static string JsonSerializer<T>(T obj) { string jsonString=string.Empty; try { DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T)); using (MemoryStream ms = new MemoryStream()) { serializer.WriteObject(ms, obj); jsonString = Encoding.UTF8.GetString(ms.ToArray()); } } catch { jsonString=string.Empty; } return jsonString; } /// <summary> /// Json反序列化 /// </summary> public static T JsonDeserialize<T>(string jsonString) { T obj = Activator.CreateInstance<T>(); try { using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString))) { DataContractJsonSerializer ser = new DataContractJsonSerializer(obj.GetType());//typeof(T) T jsonObject = (T)ser.ReadObject(ms); ms.Close(); return jsonObject; } } catch { return default(T); } } // 将 DataTable 序列化成 json 字符串 public static string DataTableToJson(DataTable dt) { if (dt == null || dt.Rows.Count == 0) { return "\"\""; } JavaScriptSerializer myJson = new JavaScriptSerializer(); List<Dictionary<string, object>> list = new List<Dictionary<string, object>>(); foreach (DataRow dr in dt.Rows) { Dictionary<string, object> result = new Dictionary<string, object>(); foreach (DataColumn dc in dt.Columns) { result.Add(dc.ColumnName, dr[dc].ToString()); } list.Add(result); } return myJson.Serialize(list); } // 将对象序列化成 json 字符串 public static string ObjectToJson(object obj) { if (obj == null) { return string.Empty; } JavaScriptSerializer myJson = new JavaScriptSerializer(); return myJson.Serialize(obj); } // 将 json 字符串反序列化成对象 public static object JsonToObject(string json) { if (string.IsNullOrEmpty(json)) { return null; } JavaScriptSerializer myJson = new JavaScriptSerializer(); return myJson.DeserializeObject(json); } // 将 json 字符串反序列化成对象 public static T JsonToObject<T>(string json) { if (string.IsNullOrEmpty(json)) { return default(T); } JavaScriptSerializer myJson = new JavaScriptSerializer(); return myJson.Deserialize<T>(json); } }
0 0
- C# JsonHelper
- c# jsonhelper
- C# JsonHelper
- C# JsonHelper
- C# JsonHelper
- c# JsonHelper 帮助类
- JsonHelper
- JsonHelper
- JsonHelper
- JSONHelper
- JsonHelper
- JsonHelper
- jsonHelper
- JSONHelper
- JsonHelper
- JSONHelper
- jsonhelper
- JsonHelper
- 基于xmpp openfire smack开发之smack类库介绍和使用[2]
- Jquery 设置字体大小(font-size)与行高(line-height)
- Apache commons CLI介绍和简单应用
- iOS开发的一些奇谲巧技
- ActiveRecord测试
- C# JsonHelper
- iOS开发:开发者账号申请后真机调试详细步骤
- oracle 分析函数(笔记)
- String.prototype.match()
- java--------【对象之间的关系】
- Oracle中查询时候使index索引失效的限制条件
- 2015年IT变革与热点技术研讨会
- BZOJ 1965 AHOI2005 SHUFFLE 洗牌 数论
- NSURL的scheme, path和query等各接口输出结果