C#对象转JSON字符串和JSON字符串转对象
/* 创建者:菜刀居士的博客 * 创建日期: 2014年09月03号 * 功能: Json操作 * */ namespace Net.String.ConsoleApplication { using System; using System.Data; using System.Collections; using System.ComponentModel; using System.Collections.Generic; using System.Web.Script.Serialization; public class JsonHelper { /// <summary> /// 把json字符串转成对象 /// </summary> /// <typeparam name="T">对象</typeparam> /// <param name="data">json字符串</param> public static T Deserialize<T>(string data) { System.Web.Script.Serialization.JavaScriptSerializer json = new System.Web.Script.Serialization.JavaScriptSerializer(); return json.Deserialize<T>(data); } /// <summary> /// 把对象转成json字符串 /// </summary> /// <param name="o">对象</param> /// <returns>json字符串</returns> public static string Serialize(object o) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); System.Web.Script.Serialization.JavaScriptSerializer json = new System.Web.Script.Serialization.JavaScriptSerializer(); json.Serialize(o, sb); return sb.ToString(); } /// <summary> /// 把DataTable对象转成json字符串 /// </summary> public string ToJson(DataTable dt) { JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); ArrayList arrayList = new ArrayList(); foreach (DataRow dataRow in dt.Rows) { Dictionary<string, object> dictionary = new Dictionary<string, object>(); foreach (DataColumn dataColumn in dt.Columns) { dictionary.Add(dataColumn.ColumnName, dataRow[dataColumn.ColumnName]); } arrayList.Add(dictionary); } return javaScriptSerializer.Serialize(arrayList); } } public static class EnumerableExtension { /// <summary> /// 集合添加一个对象 /// </summary> public static IEnumerable<T> Add<T>(this IEnumerable<T> e, T value) { foreach (var cur in e) { yield return cur; } yield return value; } /// <summary> /// 把集合转成DataTable /// </summary> public static DataTable ConvertToDataTable<T>(this IEnumerable<T> enumerable) { var dataTable = new DataTable(); foreach (PropertyDescriptor pd in TypeDescriptor.GetProperties(typeof(T))) { dataTable.Columns.Add(pd.Name, pd.PropertyType); } foreach (T item in enumerable) { var Row = dataTable.NewRow(); foreach (PropertyDescriptor dp in TypeDescriptor.GetProperties(typeof(T))) { Row[dp.Name] = dp.GetValue(item); } dataTable.Rows.Add(Row); } return dataTable; } } }
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/11116.html