using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web.Script.Serialization; using System.Reflection; using System.Data; namespace Business.Util { public class JsonHelper { public static T ConvertToEntity<T>(string sJson) { if (string.IsNullOrEmpty(sJson)) { throw new Exception("转换的JSON数据不能为空"); } JavaScriptSerializer js = new JavaScriptSerializer(); var objDic = js.Deserialize<T>(sJson); return objDic; } ///<summary> ///将DataTable转换成Json ///</summary> ///<param name="jsonName"></param> ///<param name="dt"></param> ///<returns></returns> public static string DataTableToJson(string jsonName, DataTable dt) { if (dt == null || dt.Rows.Count == 0) { return ""; } else { StringBuilder Json = new StringBuilder(); Json.Append("{\"" + jsonName + "\":["); for (int i = 0; i < dt.Rows.Count; i++) { Json.Append("{"); for (int j = 0; j < dt.Columns.Count; j++) { Json.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":\"" + dt.Rows[i][j].ToString() + "\""); if (j < dt.Columns.Count - 1) { Json.Append(","); } } Json.Append("}"); if (i < dt.Rows.Count - 1) { Json.Append(","); } } Json.Append("]}"); return Json.ToString(); } } ///<summary> ///将泛型IList转换成Json ///</summary> ///<typeparam name="T"></typeparam> ///<param name="jsonName"></param> ///<param name="IL"></param> ///<returns></returns> public static string ObjectToJson<T>(string jsonName, IList<T> IL) { StringBuilder Json = new StringBuilder(); Json.Append("{\"" + jsonName + "\":["); if (IL.Count > 0) { for (int i = 0; i < IL.Count; i++) { T obj = Activator.CreateInstance<T>(); Type type = obj.GetType(); PropertyInfo[] pis = type.GetProperties(); Json.Append("{"); for (int j = 0; j < pis.Length; j++) { Json.Append("\"" + pis[j].Name.ToString() + "\":\"" + pis[j].GetValue(IL[i], null) + "\""); if (j < pis.Length - 1) { Json.Append(","); } } Json.Append("}"); if (i < IL.Count - 1) { Json.Append(","); } } } Json.Append("]}"); return Json.ToString(); } } }